⬆️ Update libraries.
Updating smarty/smarty (v3.1.31 => v3.1.32) Updating sabre/vobject (4.1.5 => 4.1.6)
This commit is contained in:
parent
30d0f9888c
commit
dafe0afa65
270
composer.lock
generated
270
composer.lock
generated
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"_readme": [
|
"_readme": [
|
||||||
"This file locks the dependencies of your project to a known state",
|
"This file locks the dependencies of your project to a known state",
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "516114a0fbd804e5234ebeacbac30376",
|
"content-hash": "ca5770d3c97cc1d0375413eeb61758ab",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bshaffer/oauth2-server-php",
|
"name": "bshaffer/oauth2-server-php",
|
||||||
@ -640,16 +640,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sabre/vobject",
|
"name": "sabre/vobject",
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sabre-io/vobject.git",
|
"url": "https://github.com/sabre-io/vobject.git",
|
||||||
"reference": "0928660e92d46d2d24336a6db320636aa3a75414"
|
"reference": "122cacbdea2c6133ac04db86ec05854beef75adf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sabre-io/vobject/zipball/0928660e92d46d2d24336a6db320636aa3a75414",
|
"url": "https://api.github.com/repos/sabre-io/vobject/zipball/122cacbdea2c6133ac04db86ec05854beef75adf",
|
||||||
"reference": "0928660e92d46d2d24336a6db320636aa3a75414",
|
"reference": "122cacbdea2c6133ac04db86ec05854beef75adf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -733,7 +733,7 @@
|
|||||||
"xCal",
|
"xCal",
|
||||||
"xCard"
|
"xCard"
|
||||||
],
|
],
|
||||||
"time": "2018-03-08T21:06:39+00:00"
|
"time": "2018-04-20T07:22:50+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sabre/xml",
|
"name": "sabre/xml",
|
||||||
@ -863,16 +863,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "smarty/smarty",
|
"name": "smarty/smarty",
|
||||||
"version": "v3.1.31",
|
"version": "v3.1.32",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/smarty-php/smarty.git",
|
"url": "https://github.com/smarty-php/smarty.git",
|
||||||
"reference": "c7d42e4a327c402897dd587871434888fde1e7a9"
|
"reference": "ac9d4b587e5bf53381e21881820a9830765cb459"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/c7d42e4a327c402897dd587871434888fde1e7a9",
|
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/ac9d4b587e5bf53381e21881820a9830765cb459",
|
||||||
"reference": "c7d42e4a327c402897dd587871434888fde1e7a9",
|
"reference": "ac9d4b587e5bf53381e21881820a9830765cb459",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -912,7 +912,7 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"templating"
|
"templating"
|
||||||
],
|
],
|
||||||
"time": "2016-12-14T21:57:25+00:00"
|
"time": "2018-04-24T14:53:33+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
@ -1118,27 +1118,27 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "behat/mink-browserkit-driver",
|
"name": "behat/mink-browserkit-driver",
|
||||||
"version": "v1.3.2",
|
"version": "1.3.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/minkphp/MinkBrowserKitDriver.git",
|
"url": "https://github.com/minkphp/MinkBrowserKitDriver.git",
|
||||||
"reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb"
|
"reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/10e67fb4a295efcd62ea0bf16025a85ea19534fb",
|
"url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1b9a7ce903cfdaaec5fb32bfdbb26118343662eb",
|
||||||
"reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb",
|
"reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"behat/mink": "^1.7.1@dev",
|
"behat/mink": "^1.7.1@dev",
|
||||||
"php": ">=5.3.6",
|
"php": ">=5.3.6",
|
||||||
"symfony/browser-kit": "~2.3|~3.0",
|
"symfony/browser-kit": "~2.3|~3.0|~4.0",
|
||||||
"symfony/dom-crawler": "~2.3|~3.0"
|
"symfony/dom-crawler": "~2.3|~3.0|~4.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"silex/silex": "~1.2",
|
"mink/driver-testsuite": "dev-master",
|
||||||
"symfony/phpunit-bridge": "~2.7|~3.0"
|
"symfony/http-kernel": "~2.3|~3.0|~4.0"
|
||||||
},
|
},
|
||||||
"type": "mink-driver",
|
"type": "mink-driver",
|
||||||
"extra": {
|
"extra": {
|
||||||
@ -1170,7 +1170,7 @@
|
|||||||
"browser",
|
"browser",
|
||||||
"testing"
|
"testing"
|
||||||
],
|
],
|
||||||
"time": "2016-03-05T08:59:47+00:00"
|
"time": "2018-05-02T09:25:31+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "behat/mink-extension",
|
"name": "behat/mink-extension",
|
||||||
@ -1472,16 +1472,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/guzzle",
|
"name": "guzzlehttp/guzzle",
|
||||||
"version": "6.3.0",
|
"version": "6.3.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/guzzle/guzzle.git",
|
"url": "https://github.com/guzzle/guzzle.git",
|
||||||
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
|
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||||
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1491,7 +1491,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"phpunit/phpunit": "^4.0 || ^5.0",
|
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
||||||
"psr/log": "^1.0"
|
"psr/log": "^1.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@ -1500,7 +1500,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "6.2-dev"
|
"dev-master": "6.3-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -1533,7 +1533,7 @@
|
|||||||
"rest",
|
"rest",
|
||||||
"web service"
|
"web service"
|
||||||
],
|
],
|
||||||
"time": "2017-06-22T18:50:49+00:00"
|
"time": "2018-04-22T15:46:56+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/promises",
|
"name": "guzzlehttp/promises",
|
||||||
@ -1914,25 +1914,28 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-mock/php-mock-phpunit",
|
"name": "php-mock/php-mock-phpunit",
|
||||||
"version": "2.0.1",
|
"version": "2.1.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-mock/php-mock-phpunit.git",
|
"url": "https://github.com/php-mock/php-mock-phpunit.git",
|
||||||
"reference": "b42fc41ecb7538564067527f6c30b8854f149d32"
|
"reference": "ff1cc1d4e7478ce74221e05742588619bee84f69"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/b42fc41ecb7538564067527f6c30b8854f149d32",
|
"url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/ff1cc1d4e7478ce74221e05742588619bee84f69",
|
||||||
"reference": "b42fc41ecb7538564067527f6c30b8854f149d32",
|
"reference": "ff1cc1d4e7478ce74221e05742588619bee84f69",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7",
|
"php": ">=7",
|
||||||
"php-mock/php-mock-integration": "^2",
|
"php-mock/php-mock-integration": "^2",
|
||||||
"phpunit/phpunit": "^6 <6.5"
|
"phpunit/phpunit": "^6 || ^7"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"autoload.php"
|
||||||
|
],
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"phpmock\\phpunit\\": "classes/"
|
"phpmock\\phpunit\\": "classes/"
|
||||||
}
|
}
|
||||||
@ -1961,7 +1964,7 @@
|
|||||||
"test",
|
"test",
|
||||||
"test double"
|
"test double"
|
||||||
],
|
],
|
||||||
"time": "2017-12-02T09:49:02+00:00"
|
"time": "2018-04-06T13:54:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpdocumentor/reflection-common",
|
"name": "phpdocumentor/reflection-common",
|
||||||
@ -2111,23 +2114,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpspec/prophecy",
|
"name": "phpspec/prophecy",
|
||||||
"version": "1.7.5",
|
"version": "1.7.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpspec/prophecy.git",
|
"url": "https://github.com/phpspec/prophecy.git",
|
||||||
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
|
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
|
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
|
||||||
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
|
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"doctrine/instantiator": "^1.0.2",
|
"doctrine/instantiator": "^1.0.2",
|
||||||
"php": "^5.3|^7.0",
|
"php": "^5.3|^7.0",
|
||||||
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
||||||
"sebastian/comparator": "^1.1|^2.0",
|
"sebastian/comparator": "^1.1|^2.0|^3.0",
|
||||||
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@ -2170,7 +2173,7 @@
|
|||||||
"spy",
|
"spy",
|
||||||
"stub"
|
"stub"
|
||||||
],
|
],
|
||||||
"time": "2018-02-19T10:16:54+00:00"
|
"time": "2018-04-18T13:57:24+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/dbunit",
|
"name": "phpunit/dbunit",
|
||||||
@ -2226,16 +2229,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "5.3.0",
|
"version": "5.3.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1"
|
"reference": "c89677919c5dd6d3b3852f230a663118762218ac"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
|
||||||
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1",
|
"reference": "c89677919c5dd6d3b3852f230a663118762218ac",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2285,7 +2288,7 @@
|
|||||||
"testing",
|
"testing",
|
||||||
"xunit"
|
"xunit"
|
||||||
],
|
],
|
||||||
"time": "2017-12-06T09:29:45+00:00"
|
"time": "2018-04-06T15:36:58+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
@ -2475,16 +2478,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "6.4.4",
|
"version": "6.5.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932"
|
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/562f7dc75d46510a4ed5d16189ae57fbe45a9932",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
|
||||||
"reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932",
|
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2498,12 +2501,12 @@
|
|||||||
"phar-io/version": "^1.0",
|
"phar-io/version": "^1.0",
|
||||||
"php": "^7.0",
|
"php": "^7.0",
|
||||||
"phpspec/prophecy": "^1.7",
|
"phpspec/prophecy": "^1.7",
|
||||||
"phpunit/php-code-coverage": "^5.2.2",
|
"phpunit/php-code-coverage": "^5.3",
|
||||||
"phpunit/php-file-iterator": "^1.4.2",
|
"phpunit/php-file-iterator": "^1.4.3",
|
||||||
"phpunit/php-text-template": "^1.2.1",
|
"phpunit/php-text-template": "^1.2.1",
|
||||||
"phpunit/php-timer": "^1.0.9",
|
"phpunit/php-timer": "^1.0.9",
|
||||||
"phpunit/phpunit-mock-objects": "^4.0.3",
|
"phpunit/phpunit-mock-objects": "^5.0.5",
|
||||||
"sebastian/comparator": "^2.0.2",
|
"sebastian/comparator": "^2.1",
|
||||||
"sebastian/diff": "^2.0",
|
"sebastian/diff": "^2.0",
|
||||||
"sebastian/environment": "^3.1",
|
"sebastian/environment": "^3.1",
|
||||||
"sebastian/exporter": "^3.1",
|
"sebastian/exporter": "^3.1",
|
||||||
@ -2529,7 +2532,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "6.4.x-dev"
|
"dev-master": "6.5.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -2555,33 +2558,33 @@
|
|||||||
"testing",
|
"testing",
|
||||||
"xunit"
|
"xunit"
|
||||||
],
|
],
|
||||||
"time": "2017-11-08T11:26:09+00:00"
|
"time": "2018-04-10T11:38:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit-mock-objects",
|
"name": "phpunit/phpunit-mock-objects",
|
||||||
"version": "4.0.4",
|
"version": "5.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
||||||
"reference": "2f789b59ab89669015ad984afa350c4ec577ade0"
|
"reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
|
||||||
"reference": "2f789b59ab89669015ad984afa350c4ec577ade0",
|
"reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"doctrine/instantiator": "^1.0.5",
|
"doctrine/instantiator": "^1.0.5",
|
||||||
"php": "^7.0",
|
"php": "^7.0",
|
||||||
"phpunit/php-text-template": "^1.2.1",
|
"phpunit/php-text-template": "^1.2.1",
|
||||||
"sebastian/exporter": "^3.0"
|
"sebastian/exporter": "^3.1"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpunit/phpunit": "<6.0"
|
"phpunit/phpunit": "<6.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^6.0"
|
"phpunit/phpunit": "^6.5"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-soap": "*"
|
"ext-soap": "*"
|
||||||
@ -2589,7 +2592,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "4.0.x-dev"
|
"dev-master": "5.0.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -2604,7 +2607,7 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Sebastian Bergmann",
|
"name": "Sebastian Bergmann",
|
||||||
"email": "sb@sebastian-bergmann.de",
|
"email": "sebastian@phpunit.de",
|
||||||
"role": "lead"
|
"role": "lead"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -2614,7 +2617,7 @@
|
|||||||
"mock",
|
"mock",
|
||||||
"xunit"
|
"xunit"
|
||||||
],
|
],
|
||||||
"time": "2017-08-03T14:08:16+00:00"
|
"time": "2018-01-06T05:45:45+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/container",
|
"name": "psr/container",
|
||||||
@ -3276,16 +3279,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/browser-kit",
|
"name": "symfony/browser-kit",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/browser-kit.git",
|
"url": "https://github.com/symfony/browser-kit.git",
|
||||||
"reference": "490f27762705c8489bd042fe3e9377a191dba9b4"
|
"reference": "840bb6f0d5b3701fd768b68adf7193c2d0f98f79"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/490f27762705c8489bd042fe3e9377a191dba9b4",
|
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/840bb6f0d5b3701fd768b68adf7193c2d0f98f79",
|
||||||
"reference": "490f27762705c8489bd042fe3e9377a191dba9b4",
|
"reference": "840bb6f0d5b3701fd768b68adf7193c2d0f98f79",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3329,11 +3332,11 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony BrowserKit Component",
|
"description": "Symfony BrowserKit Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-01-03T07:37:34+00:00"
|
"time": "2018-03-19T22:32:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/class-loader",
|
"name": "symfony/class-loader",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/class-loader.git",
|
"url": "https://github.com/symfony/class-loader.git",
|
||||||
@ -3389,16 +3392,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/config",
|
"name": "symfony/config",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/config.git",
|
"url": "https://github.com/symfony/config.git",
|
||||||
"reference": "05e10567b529476a006b00746c5f538f1636810e"
|
"reference": "7c2a9d44f4433863e9bca682e7f03609234657f9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e",
|
"url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9",
|
||||||
"reference": "05e10567b529476a006b00746c5f538f1636810e",
|
"reference": "7c2a9d44f4433863e9bca682e7f03609234657f9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3448,20 +3451,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony Config Component",
|
"description": "Symfony Config Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-14T10:03:57+00:00"
|
"time": "2018-03-19T22:32:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "067339e9b8ec30d5f19f5950208893ff026b94f7"
|
"reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7",
|
"url": "https://api.github.com/repos/symfony/console/zipball/5b1fdfa8eb93464bcc36c34da39cedffef822cdf",
|
||||||
"reference": "067339e9b8ec30d5f19f5950208893ff026b94f7",
|
"reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3482,7 +3485,7 @@
|
|||||||
"symfony/process": "~3.3|~4.0"
|
"symfony/process": "~3.3|~4.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"psr/log": "For using the console logger",
|
"psr/log-implementation": "For using the console logger",
|
||||||
"symfony/event-dispatcher": "",
|
"symfony/event-dispatcher": "",
|
||||||
"symfony/lock": "",
|
"symfony/lock": "",
|
||||||
"symfony/process": ""
|
"symfony/process": ""
|
||||||
@ -3517,20 +3520,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony Console Component",
|
"description": "Symfony Console Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-26T15:46:28+00:00"
|
"time": "2018-04-30T01:22:56+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/css-selector",
|
"name": "symfony/css-selector",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/css-selector.git",
|
"url": "https://github.com/symfony/css-selector.git",
|
||||||
"reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a"
|
"reference": "519a80d7c1d95c6cc0b67f686d15fe27c6910de0"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/544655f1fc078a9cd839fdda2b7b1e64627c826a",
|
"url": "https://api.github.com/repos/symfony/css-selector/zipball/519a80d7c1d95c6cc0b67f686d15fe27c6910de0",
|
||||||
"reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a",
|
"reference": "519a80d7c1d95c6cc0b67f686d15fe27c6910de0",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3570,20 +3573,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony CssSelector Component",
|
"description": "Symfony CssSelector Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-03T14:55:07+00:00"
|
"time": "2018-03-19T22:32:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/debug",
|
"name": "symfony/debug",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/debug.git",
|
"url": "https://github.com/symfony/debug.git",
|
||||||
"reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc"
|
"reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
|
"url": "https://api.github.com/repos/symfony/debug/zipball/1b95888cfd996484527cb41e8952d9a5eaf7454f",
|
||||||
"reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
|
"reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3626,20 +3629,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony Debug Component",
|
"description": "Symfony Debug Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-28T21:49:22+00:00"
|
"time": "2018-04-30T16:53:52+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dependency-injection",
|
"name": "symfony/dependency-injection",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dependency-injection.git",
|
"url": "https://github.com/symfony/dependency-injection.git",
|
||||||
"reference": "12e901abc1cb0d637a0e5abe9923471361d96b07"
|
"reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07",
|
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/54ff9d78b56429f9a1ac12e60bfb6d169c0468e3",
|
||||||
"reference": "12e901abc1cb0d637a0e5abe9923471361d96b07",
|
"reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3697,20 +3700,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony DependencyInjection Component",
|
"description": "Symfony DependencyInjection Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-03-04T03:54:53+00:00"
|
"time": "2018-04-29T14:04:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dom-crawler",
|
"name": "symfony/dom-crawler",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dom-crawler.git",
|
"url": "https://github.com/symfony/dom-crawler.git",
|
||||||
"reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d"
|
"reference": "1a4cffeb059226ff6bee9f48acb388faf674afff"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2bb5d3101cc01f4fe580e536daf4f1959bc2d24d",
|
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/1a4cffeb059226ff6bee9f48acb388faf674afff",
|
||||||
"reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d",
|
"reference": "1a4cffeb059226ff6bee9f48acb388faf674afff",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3753,20 +3756,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony DomCrawler Component",
|
"description": "Symfony DomCrawler Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-22T10:48:49+00:00"
|
"time": "2018-03-19T22:32:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||||
"reference": "58990682ac3fdc1f563b7e705452921372aad11d"
|
"reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d",
|
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fdd5abcebd1061ec647089c6c41a07ed60af09f8",
|
||||||
"reference": "58990682ac3fdc1f563b7e705452921372aad11d",
|
"reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3816,11 +3819,11 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony EventDispatcher Component",
|
"description": "Symfony EventDispatcher Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-14T10:03:57+00:00"
|
"time": "2018-04-06T07:35:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/filesystem",
|
"name": "symfony/filesystem",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/filesystem.git",
|
"url": "https://github.com/symfony/filesystem.git",
|
||||||
@ -3869,16 +3872,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.7.0",
|
"version": "v1.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
|
"reference": "3296adf6a6454a050679cde90f95350ad604b171"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171",
|
||||||
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
|
"reference": "3296adf6a6454a050679cde90f95350ad604b171",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3890,7 +3893,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "1.7-dev"
|
"dev-master": "1.8-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -3924,20 +3927,20 @@
|
|||||||
"portable",
|
"portable",
|
||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"time": "2018-01-30T19:27:44+00:00"
|
"time": "2018-04-26T10:06:28+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "80e19eaf12cbb546ac40384e5c55c36306823e57"
|
"reference": "d4af50f46cd8171fd5c1cdebdb9a8bbcd8078c6c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/d4af50f46cd8171fd5c1cdebdb9a8bbcd8078c6c",
|
||||||
"reference": "80e19eaf12cbb546ac40384e5c55c36306823e57",
|
"reference": "d4af50f46cd8171fd5c1cdebdb9a8bbcd8078c6c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -3958,7 +3961,7 @@
|
|||||||
"symfony/yaml": "~3.4|~4.0"
|
"symfony/yaml": "~3.4|~4.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"psr/log": "To use logging capability in translator",
|
"psr/log-implementation": "To use logging capability in translator",
|
||||||
"symfony/config": "",
|
"symfony/config": "",
|
||||||
"symfony/yaml": ""
|
"symfony/yaml": ""
|
||||||
},
|
},
|
||||||
@ -3992,20 +3995,20 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony Translation Component",
|
"description": "Symfony Translation Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-22T06:28:18+00:00"
|
"time": "2018-04-30T01:22:56+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/yaml",
|
"name": "symfony/yaml",
|
||||||
"version": "v3.4.6",
|
"version": "v3.4.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/yaml.git",
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
"reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb"
|
"reference": "033cfa61ef06ee0847e056e530201842b6e926c3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb",
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/033cfa61ef06ee0847e056e530201842b6e926c3",
|
||||||
"reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb",
|
"reference": "033cfa61ef06ee0847e056e530201842b6e926c3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4050,7 +4053,7 @@
|
|||||||
],
|
],
|
||||||
"description": "Symfony Yaml Component",
|
"description": "Symfony Yaml Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"time": "2018-02-16T09:50:28+00:00"
|
"time": "2018-04-08T08:21:29+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
@ -4094,16 +4097,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "webmozart/assert",
|
"name": "webmozart/assert",
|
||||||
"version": "1.2.0",
|
"version": "1.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/webmozart/assert.git",
|
"url": "https://github.com/webmozart/assert.git",
|
||||||
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
|
"reference": "0df1908962e7a3071564e857d86874dad1ef204a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
"url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
|
||||||
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
"reference": "0df1908962e7a3071564e857d86874dad1ef204a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4140,15 +4143,18 @@
|
|||||||
"check",
|
"check",
|
||||||
"validate"
|
"validate"
|
||||||
],
|
],
|
||||||
"time": "2016-11-23T20:04:58+00:00"
|
"time": "2018-01-29T19:49:41+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": {
|
"stability-flags": {
|
||||||
|
"phpunit/phpunit": 0,
|
||||||
"behat/behat": 0,
|
"behat/behat": 0,
|
||||||
"behat/mink-extension": 0,
|
"behat/mink-extension": 0,
|
||||||
"behat/mink-goutte-driver": 0
|
"behat/mink-goutte-driver": 0,
|
||||||
|
"php-mock/php-mock-phpunit": 0,
|
||||||
|
"phpunit/dbunit": 0
|
||||||
},
|
},
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
@ -4160,7 +4166,5 @@
|
|||||||
"ext-xml": "*",
|
"ext-xml": "*",
|
||||||
"ext-openssl": "*"
|
"ext-openssl": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": {
|
"platform-dev": []
|
||||||
"php": ">=5.6 || >=7.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
24
vendor/composer/installed.json
vendored
24
vendor/composer/installed.json
vendored
@ -657,17 +657,17 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sabre/vobject",
|
"name": "sabre/vobject",
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"version_normalized": "4.1.5.0",
|
"version_normalized": "4.1.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sabre-io/vobject.git",
|
"url": "https://github.com/sabre-io/vobject.git",
|
||||||
"reference": "0928660e92d46d2d24336a6db320636aa3a75414"
|
"reference": "122cacbdea2c6133ac04db86ec05854beef75adf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sabre-io/vobject/zipball/0928660e92d46d2d24336a6db320636aa3a75414",
|
"url": "https://api.github.com/repos/sabre-io/vobject/zipball/122cacbdea2c6133ac04db86ec05854beef75adf",
|
||||||
"reference": "0928660e92d46d2d24336a6db320636aa3a75414",
|
"reference": "122cacbdea2c6133ac04db86ec05854beef75adf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -682,7 +682,7 @@
|
|||||||
"suggest": {
|
"suggest": {
|
||||||
"hoa/bench": "If you would like to run the benchmark scripts"
|
"hoa/bench": "If you would like to run the benchmark scripts"
|
||||||
},
|
},
|
||||||
"time": "2018-03-08T21:06:39+00:00",
|
"time": "2018-04-20T07:22:50+00:00",
|
||||||
"bin": [
|
"bin": [
|
||||||
"bin/vobject",
|
"bin/vobject",
|
||||||
"bin/generate_vcards"
|
"bin/generate_vcards"
|
||||||
@ -886,23 +886,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "smarty/smarty",
|
"name": "smarty/smarty",
|
||||||
"version": "v3.1.31",
|
"version": "v3.1.32",
|
||||||
"version_normalized": "3.1.31.0",
|
"version_normalized": "3.1.32.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/smarty-php/smarty.git",
|
"url": "https://github.com/smarty-php/smarty.git",
|
||||||
"reference": "c7d42e4a327c402897dd587871434888fde1e7a9"
|
"reference": "ac9d4b587e5bf53381e21881820a9830765cb459"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/c7d42e4a327c402897dd587871434888fde1e7a9",
|
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/ac9d4b587e5bf53381e21881820a9830765cb459",
|
||||||
"reference": "c7d42e4a327c402897dd587871434888fde1e7a9",
|
"reference": "ac9d4b587e5bf53381e21881820a9830765cb459",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.2"
|
"php": ">=5.2"
|
||||||
},
|
},
|
||||||
"time": "2016-12-14T21:57:25+00:00",
|
"time": "2018-04-24T14:53:33+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
9
vendor/sabre/vobject/CHANGELOG.md
vendored
9
vendor/sabre/vobject/CHANGELOG.md
vendored
@ -1,10 +1,17 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
4.1.6 (2018-04-20)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* #406, #407, #408, #409: Another round of performance improvements in serialization of properties (@gharlan, @staabm)
|
||||||
|
* #410: Fixes in iTip for handling `BYDAY=SA,SO` (@gharlan)
|
||||||
|
* #381: Fixes in iTip handling of `SCHEDULE-FORCE-SEND` (@alecpl)
|
||||||
|
|
||||||
4.1.5 (2018-03-08)
|
4.1.5 (2018-03-08)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
* Serialization: Performance boost for long properties (@gharlan)
|
* #404: Serialization: Performance boost for long properties (@gharlan)
|
||||||
|
|
||||||
4.1.4 (2017-12-22)
|
4.1.4 (2017-12-22)
|
||||||
------------------
|
------------------
|
||||||
|
5
vendor/sabre/vobject/lib/ITip/Broker.php
vendored
5
vendor/sabre/vobject/lib/ITip/Broker.php
vendored
@ -897,6 +897,9 @@ class Broker {
|
|||||||
if ($key === 'INTERVAL' && $val == 1) {
|
if ($key === 'INTERVAL' && $val == 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (is_array($val)) {
|
||||||
|
$val = implode(',', $val);
|
||||||
|
}
|
||||||
$rrule[] = "$key=$val";
|
$rrule[] = "$key=$val";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -938,7 +941,7 @@ class Broker {
|
|||||||
$attendees[$attendee->getNormalizedValue()]['instances'][$recurId] = [
|
$attendees[$attendee->getNormalizedValue()]['instances'][$recurId] = [
|
||||||
'id' => $recurId,
|
'id' => $recurId,
|
||||||
'partstat' => $partStat,
|
'partstat' => $partStat,
|
||||||
'force-send' => $forceSend,
|
'forceSend' => $forceSend,
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
$attendees[$attendee->getNormalizedValue()] = [
|
$attendees[$attendee->getNormalizedValue()] = [
|
||||||
|
17
vendor/sabre/vobject/lib/Parser/MimeDir.php
vendored
17
vendor/sabre/vobject/lib/Parser/MimeDir.php
vendored
@ -283,22 +283,22 @@ class MimeDir extends Parser {
|
|||||||
*/
|
*/
|
||||||
protected function readLine() {
|
protected function readLine() {
|
||||||
|
|
||||||
if (!is_null($this->lineBuffer)) {
|
if (!\is_null($this->lineBuffer)) {
|
||||||
$rawLine = $this->lineBuffer;
|
$rawLine = $this->lineBuffer;
|
||||||
$this->lineBuffer = null;
|
$this->lineBuffer = null;
|
||||||
} else {
|
} else {
|
||||||
do {
|
do {
|
||||||
$eof = feof($this->input);
|
$eof = \feof($this->input);
|
||||||
|
|
||||||
$rawLine = fgets($this->input);
|
$rawLine = \fgets($this->input);
|
||||||
|
|
||||||
if ($eof || (feof($this->input) && $rawLine === false)) {
|
if ($eof || (\feof($this->input) && $rawLine === false)) {
|
||||||
throw new EofException('End of document reached prematurely');
|
throw new EofException('End of document reached prematurely');
|
||||||
}
|
}
|
||||||
if ($rawLine === false) {
|
if ($rawLine === false) {
|
||||||
throw new ParseException('Error reading from input stream');
|
throw new ParseException('Error reading from input stream');
|
||||||
}
|
}
|
||||||
$rawLine = rtrim($rawLine, "\r\n");
|
$rawLine = \rtrim($rawLine, "\r\n");
|
||||||
} while ($rawLine === ''); // Skipping empty lines
|
} while ($rawLine === ''); // Skipping empty lines
|
||||||
$this->lineIndex++;
|
$this->lineIndex++;
|
||||||
}
|
}
|
||||||
@ -309,14 +309,15 @@ class MimeDir extends Parser {
|
|||||||
// Looking ahead for folded lines.
|
// Looking ahead for folded lines.
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
$nextLine = rtrim(fgets($this->input), "\r\n");
|
$nextLine = \rtrim(\fgets($this->input), "\r\n");
|
||||||
$this->lineIndex++;
|
$this->lineIndex++;
|
||||||
if (!$nextLine) {
|
if (!$nextLine) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ($nextLine[0] === "\t" || $nextLine[0] === " ") {
|
if ($nextLine[0] === "\t" || $nextLine[0] === " ") {
|
||||||
$line .= substr($nextLine, 1);
|
$curLine = \substr($nextLine, 1);
|
||||||
$rawLine .= "\n " . substr($nextLine, 1);
|
$line .= $curLine;
|
||||||
|
$rawLine .= "\n " . $curLine;
|
||||||
} else {
|
} else {
|
||||||
$this->lineBuffer = $nextLine;
|
$this->lineBuffer = $nextLine;
|
||||||
break;
|
break;
|
||||||
|
24
vendor/sabre/vobject/lib/Property.php
vendored
24
vendor/sabre/vobject/lib/Property.php
vendored
@ -246,20 +246,18 @@ abstract class Property extends Node {
|
|||||||
|
|
||||||
$str .= ':' . $this->getRawMimeDirValue();
|
$str .= ':' . $this->getRawMimeDirValue();
|
||||||
|
|
||||||
$out = '';
|
$str = \preg_replace(
|
||||||
while (strlen($str) > 0) {
|
'/(
|
||||||
if (strlen($str) > 75) {
|
(?:^.)? # 1 additional byte in first line because of missing single space (see next line)
|
||||||
$part = mb_strcut($str, 0, 75, 'utf-8');
|
.{1,74} # max 75 bytes per line (1 byte is used for a single space added after every CRLF)
|
||||||
$out .= $part . "\r\n";
|
(?![\x80-\xbf]) # prevent splitting multibyte characters
|
||||||
$str = ' ' . substr($str, strlen($part));
|
)/x',
|
||||||
} else {
|
"$1\r\n ",
|
||||||
$out .= $str . "\r\n";
|
$str
|
||||||
$str = '';
|
);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $out;
|
// remove single space after last CRLF
|
||||||
|
return \substr($str, 0, -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
45
vendor/sabre/vobject/lib/Property/Text.php
vendored
45
vendor/sabre/vobject/lib/Property/Text.php
vendored
@ -213,16 +213,16 @@ class Text extends Property {
|
|||||||
$val = $this->getParts();
|
$val = $this->getParts();
|
||||||
|
|
||||||
if (isset($this->minimumPropertyValues[$this->name])) {
|
if (isset($this->minimumPropertyValues[$this->name])) {
|
||||||
$val = array_pad($val, $this->minimumPropertyValues[$this->name], '');
|
$val = \array_pad($val, $this->minimumPropertyValues[$this->name], '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Imploding multiple parts into a single value, and splitting the
|
// Imploding multiple parts into a single value, and splitting the
|
||||||
// values with ;.
|
// values with ;.
|
||||||
if (count($val) > 1) {
|
if (\count($val) > 1) {
|
||||||
foreach ($val as $k => $v) {
|
foreach ($val as $k => $v) {
|
||||||
$val[$k] = str_replace(';', '\;', $v);
|
$val[$k] = \str_replace(';', '\;', $v);
|
||||||
}
|
}
|
||||||
$val = implode(';', $val);
|
$val = \implode(';', $val);
|
||||||
} else {
|
} else {
|
||||||
$val = $val[0];
|
$val = $val[0];
|
||||||
}
|
}
|
||||||
@ -242,7 +242,7 @@ class Text extends Property {
|
|||||||
|
|
||||||
// If the resulting value contains a \n, we must encode it as
|
// If the resulting value contains a \n, we must encode it as
|
||||||
// quoted-printable.
|
// quoted-printable.
|
||||||
if (strpos($val, "\n") !== false) {
|
if (\strpos($val, "\n") !== false) {
|
||||||
|
|
||||||
$str .= ';ENCODING=QUOTED-PRINTABLE:';
|
$str .= ';ENCODING=QUOTED-PRINTABLE:';
|
||||||
$lastLine = $str;
|
$lastLine = $str;
|
||||||
@ -252,40 +252,39 @@ class Text extends Property {
|
|||||||
// encode newlines for us. Specifically, the \r\n sequence must in
|
// encode newlines for us. Specifically, the \r\n sequence must in
|
||||||
// vcards be encoded as =0D=OA and we must insert soft-newlines
|
// vcards be encoded as =0D=OA and we must insert soft-newlines
|
||||||
// every 75 bytes.
|
// every 75 bytes.
|
||||||
for ($ii = 0;$ii < strlen($val);$ii++) {
|
for ($ii = 0;$ii < \strlen($val);$ii++) {
|
||||||
$ord = ord($val[$ii]);
|
$ord = \ord($val[$ii]);
|
||||||
// These characters are encoded as themselves.
|
// These characters are encoded as themselves.
|
||||||
if ($ord >= 32 && $ord <= 126) {
|
if ($ord >= 32 && $ord <= 126) {
|
||||||
$lastLine .= $val[$ii];
|
$lastLine .= $val[$ii];
|
||||||
} else {
|
} else {
|
||||||
$lastLine .= '=' . strtoupper(bin2hex($val[$ii]));
|
$lastLine .= '=' . \strtoupper(\bin2hex($val[$ii]));
|
||||||
}
|
}
|
||||||
if (strlen($lastLine) >= 75) {
|
if (\strlen($lastLine) >= 75) {
|
||||||
// Soft line break
|
// Soft line break
|
||||||
$out .= $lastLine . "=\r\n ";
|
$out .= $lastLine . "=\r\n ";
|
||||||
$lastLine = null;
|
$lastLine = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (!is_null($lastLine)) $out .= $lastLine . "\r\n";
|
if (!\is_null($lastLine)) $out .= $lastLine . "\r\n";
|
||||||
return $out;
|
return $out;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$str .= ':' . $val;
|
$str .= ':' . $val;
|
||||||
$out = '';
|
|
||||||
while (strlen($str) > 0) {
|
|
||||||
if (strlen($str) > 75) {
|
|
||||||
$part = mb_strcut($str, 0, 75, 'utf-8');
|
|
||||||
$out .= $part . "\r\n";
|
|
||||||
$str = ' ' . substr($str, strlen($part));
|
|
||||||
} else {
|
|
||||||
$out .= $str . "\r\n";
|
|
||||||
$str = '';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $out;
|
$str = \preg_replace(
|
||||||
|
'/(
|
||||||
|
(?:^.)? # 1 additional byte in first line because of missing single space (see next line)
|
||||||
|
.{1,74} # max 75 bytes per line (1 byte is used for a single space added after every CRLF)
|
||||||
|
(?![\x80-\xbf]) # prevent splitting multibyte characters
|
||||||
|
)/x',
|
||||||
|
"$1\r\n ",
|
||||||
|
$str
|
||||||
|
);
|
||||||
|
|
||||||
|
// remove single space after last CRLF
|
||||||
|
return \substr($str, 0, -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
vendor/sabre/vobject/lib/Version.php
vendored
2
vendor/sabre/vobject/lib/Version.php
vendored
@ -14,6 +14,6 @@ class Version {
|
|||||||
/**
|
/**
|
||||||
* Full version number.
|
* Full version number.
|
||||||
*/
|
*/
|
||||||
const VERSION = '4.1.5';
|
const VERSION = '4.1.6';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,3 +27,5 @@ To retrieve the development and documentation folders add
|
|||||||
"smarty/smarty-dev": "~3.1@dev"
|
"smarty/smarty-dev": "~3.1@dev"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
If you are using (include) the composer generated autoloader.php which is located
|
||||||
|
in the /vendor folder it is no longer needed to require the Smarty.class.php file.
|
@ -1,4 +1,11 @@
|
|||||||
3.1.31-dev
|
3.1.3"
|
||||||
|
New tags for inheritance parent and chilD
|
||||||
|
{parent} == {$smarty.block.parent}
|
||||||
|
{child} == {$smarty.block.child}
|
||||||
|
Both tags support the assign attribute like
|
||||||
|
{child assign=foo}
|
||||||
|
|
||||||
|
3.1.31
|
||||||
New tags for inheritance parent and child
|
New tags for inheritance parent and child
|
||||||
{block_parent} == {$smarty.block.parent}
|
{block_parent} == {$smarty.block.parent}
|
||||||
{block_child} == {$smarty.block.child}
|
{block_child} == {$smarty.block.child}
|
||||||
@ -7,7 +14,6 @@ Since 3.1.28 you can mix inheritance by extends resource with the {extends} tag.
|
|||||||
A template called by extends resource can extend a subtemplate or chain buy the {extends} tag.
|
A template called by extends resource can extend a subtemplate or chain buy the {extends} tag.
|
||||||
Since 3.1.31 this feature can be turned off by setting the new Smarty property Smarty::$extends_recursion to false.
|
Since 3.1.31 this feature can be turned off by setting the new Smarty property Smarty::$extends_recursion to false.
|
||||||
|
|
||||||
|
|
||||||
3.1.28
|
3.1.28
|
||||||
Starting with version 3.1.28 template inheritance is no longer a compile time process.
|
Starting with version 3.1.28 template inheritance is no longer a compile time process.
|
||||||
All {block} tag parent/child relations are resolved at run time.
|
All {block} tag parent/child relations are resolved at run time.
|
||||||
@ -63,7 +69,7 @@ the compiled code of {include} subtemplates gets also merged in compiled inherit
|
|||||||
Merging the code into a single compile template has some drawbacks.
|
Merging the code into a single compile template has some drawbacks.
|
||||||
1. You could not use variable file names in {include} Smarty would use the {include} of compilation time.
|
1. You could not use variable file names in {include} Smarty would use the {include} of compilation time.
|
||||||
2. You could not use individual compile_id in {include}
|
2. You could not use individual compile_id in {include}
|
||||||
3. Seperate caching of subtemplate was not possible
|
3. Separate caching of subtemplate was not possible
|
||||||
4. Any change of the template directory structure between calls was not necessarily seen.
|
4. Any change of the template directory structure between calls was not necessarily seen.
|
||||||
|
|
||||||
Starting with 3.1.15 some of the above conditions got checked and resulted in an exception. It turned out
|
Starting with 3.1.15 some of the above conditions got checked and resulted in an exception. It turned out
|
||||||
@ -75,13 +81,11 @@ With this setting all {include} subtemplate will be merge into the compiled inhe
|
|||||||
could be rejected by exception.
|
could be rejected by exception.
|
||||||
|
|
||||||
|
|
||||||
If $smarty->inheritance_merge_compiled_includes = false; {include} subtemplate will not be merged.
|
If $smarty->inheritance_merge_compiled_includes = false; {include} subtemplate will not be merged.You must now manually merge all {include} subtemplate which do contain {block} tags. This is done by setting the "inline" option.
|
||||||
You must now manually merge all {include} subtemplate which do contain {block} tags. This is done by setting the "inline" option.
|
|
||||||
{include file='foo.bar' inline}
|
{include file='foo.bar' inline}
|
||||||
|
|
||||||
1. In case of a variable file name like {include file=$foo inline} you must use the variable in a compile_id $smarty->compile_id = $foo;
|
1. In case of a variable file name like {include file=$foo inline} you must use the variable in a compile_id $smarty->compile_id = $foo;
|
||||||
2. If you use individual compile_id in {include file='foo.tpl' compile_id=$bar inline} it must be used in the
|
2. If you use individual compile_id in {include file='foo.tpl' compile_id=$bar inline} it must be used in the global compile_id as well $smarty->compile_id = $bar;
|
||||||
global compile_id as well $smarty->compile_id = $bar;
|
|
||||||
3. If call templates with different template_dir configurations and a parent could same named child template from different folders
|
3. If call templates with different template_dir configurations and a parent could same named child template from different folders
|
||||||
you must make the folder name part of the compile_id.
|
you must make the folder name part of the compile_id.
|
||||||
|
|
||||||
|
53
vendor/smarty/smarty/NEW_FEATURES.txt
vendored
53
vendor/smarty/smarty/NEW_FEATURES.txt
vendored
@ -2,6 +2,53 @@
|
|||||||
|
|
||||||
This file contains a brief description of new features which have been added to Smarty 3.1
|
This file contains a brief description of new features which have been added to Smarty 3.1
|
||||||
|
|
||||||
|
Smarty 3.1.32 New tags for inheritance parent and child
|
||||||
|
=========================================
|
||||||
|
{parent} == {$smarty.block.parent}
|
||||||
|
{child} == {$smarty.block.child}
|
||||||
|
Both tags support the assign attribute like
|
||||||
|
{child assign=foo}
|
||||||
|
|
||||||
|
Deprecate functions Smarty::muteExpectedErrors() and Smarty::unmuteExpectedErrors()
|
||||||
|
===================================================================================
|
||||||
|
These functions to start a special error handler are no longer needed as Smarty does
|
||||||
|
no longer use error suppression like @filemtime().
|
||||||
|
For backward compatibility the functions still can be called.
|
||||||
|
|
||||||
|
Using literals containing Smarty's left and right delimiter
|
||||||
|
===========================================================
|
||||||
|
New Methods
|
||||||
|
$smarty->setLiterals(array $literals)
|
||||||
|
$smarty->addLiterals(array $literals)
|
||||||
|
to define literals containing Smarty delimiter. This can avoid the need for extreme usage
|
||||||
|
of {literal} {/literal} tags.
|
||||||
|
A) Treat '{{' and '}}' as literal
|
||||||
|
If Smarty::$auto_literal is enabled
|
||||||
|
{{ foo }}
|
||||||
|
will be treated now as literal. (This does apply for any number of delimiter repeatations).
|
||||||
|
However {{foo}} is not an literal but will be interpreted as a recursive Smarty tag.
|
||||||
|
If you use
|
||||||
|
$smarty->setLiteral(array('{{','}}'));
|
||||||
|
{{foo}} is now a literal as well.
|
||||||
|
NOTE: In the last example nested Smarty tags starting with '{{' or ending with '}}' will not
|
||||||
|
work any longer, but this should be very very raw occouring restriction.
|
||||||
|
B) Example 2
|
||||||
|
Assume your delimiter are '<-' , '->' and '<--' , '-->' shall be literals
|
||||||
|
$smarty->setLiteral(array('<--','-->'));
|
||||||
|
|
||||||
|
|
||||||
|
The capture buffers can now be accessed as array
|
||||||
|
================================================
|
||||||
|
{capture name='foo'}
|
||||||
|
bah
|
||||||
|
{\capture}
|
||||||
|
{capture name='buh'}
|
||||||
|
blar
|
||||||
|
{\capture}
|
||||||
|
{foreach $smarty.capture as $name => $buffer}
|
||||||
|
....
|
||||||
|
{/foreach}
|
||||||
|
|
||||||
Smarty 3.1.31
|
Smarty 3.1.31
|
||||||
New tags for inheritance parent and child
|
New tags for inheritance parent and child
|
||||||
=========================================
|
=========================================
|
||||||
@ -45,8 +92,7 @@ Smarty 3.1.30
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
|
|
||||||
The {foreach} loop is rendered while processing the compiled template, but $current is a nocache
|
The {foreach} loop is rendered while processing the compiled template, but $current is a nocache
|
||||||
variable. Normally the {if $current==$item.id} would fail as the $item variable is unkown in the
|
variable. Normally the {if $current==$item.id} would fail as the $item variable is unknown in the cached template. {make_nocache $item} does make the current $item value known in thee cached template.
|
||||||
cached template. {make_nocache $item} does make the current $item value known in thee cached template.
|
|
||||||
|
|
||||||
{make_nocache} is ignored when caching is disabled or the variable does exists as nocache variable.
|
{make_nocache} is ignored when caching is disabled or the variable does exists as nocache variable.
|
||||||
|
|
||||||
@ -81,8 +127,7 @@ Smarty 3.1.30
|
|||||||
Supported scope are parent, tpl_root, smarty, global and root.
|
Supported scope are parent, tpl_root, smarty, global and root.
|
||||||
A scope used together with the {include} tag will cause that with some exceptions any variable
|
A scope used together with the {include} tag will cause that with some exceptions any variable
|
||||||
assignment within that sub-template will update/assign the variable in other scopes according
|
assignment within that sub-template will update/assign the variable in other scopes according
|
||||||
to the above rules. It does include also variables assigned by plugins, tags supporting the assign=foo
|
to the above rules. It does include also variables assigned by plugins, tags supporting the assign=foo attribute and direct assignments in {if} and {while} like {if $foo=$bar}.
|
||||||
attribute and direct assignments in {if} and {while} like {if $foo=$bar}.
|
|
||||||
Excluded are the key and value variables of {foreach}, {for} loop variables , variables passed by attributes
|
Excluded are the key and value variables of {foreach}, {for} loop variables , variables passed by attributes
|
||||||
in {include} and direct increments/decrements like {$foo++}, {$foo--}
|
in {include} and direct increments/decrements like {$foo++}, {$foo--}
|
||||||
|
|
||||||
|
10
vendor/smarty/smarty/README
vendored
10
vendor/smarty/smarty/README
vendored
@ -260,12 +260,12 @@ Example: {$object->method1($x)->method2($y)}
|
|||||||
{for} tag added for looping (replacement for {section} tag):
|
{for} tag added for looping (replacement for {section} tag):
|
||||||
{for $x=0, $y=count($foo); $x<$y; $x++} .... {/for}
|
{for $x=0, $y=count($foo); $x<$y; $x++} .... {/for}
|
||||||
Any number of statements can be used separated by comma as the first
|
Any number of statements can be used separated by comma as the first
|
||||||
inital expression at {for}.
|
initial expression at {for}.
|
||||||
|
|
||||||
{for $x = $start to $end step $step} ... {/for}is in the SVN now .
|
{for $x = $start to $end step $step} ... {/for}is in the SVN now .
|
||||||
You can use also
|
You can use also
|
||||||
{for $x = $start to $end} ... {/for}
|
{for $x = $start to $end} ... {/for}
|
||||||
In this case the step value will be automaticall 1 or -1 depending on the start and end values.
|
In this case the step value will be automatically 1 or -1 depending on the start and end values.
|
||||||
Instead of $start and $end you can use any valid expression.
|
Instead of $start and $end you can use any valid expression.
|
||||||
Inside the loop the following special vars can be accessed:
|
Inside the loop the following special vars can be accessed:
|
||||||
$x@iteration = number of iteration
|
$x@iteration = number of iteration
|
||||||
@ -473,7 +473,7 @@ TEMPLATE INHERITANCE:
|
|||||||
=====================
|
=====================
|
||||||
|
|
||||||
With template inheritance you can define blocks, which are areas that can be
|
With template inheritance you can define blocks, which are areas that can be
|
||||||
overriden by child templates, so your templates could look like this:
|
overridden by child templates, so your templates could look like this:
|
||||||
|
|
||||||
parent.tpl:
|
parent.tpl:
|
||||||
<html>
|
<html>
|
||||||
@ -508,8 +508,8 @@ grandchild.tpl:
|
|||||||
|
|
||||||
We redefined all the blocks here, however in the title block we used {$smarty.block.parent},
|
We redefined all the blocks here, however in the title block we used {$smarty.block.parent},
|
||||||
which tells Smarty to insert the default content from the parent template in its place.
|
which tells Smarty to insert the default content from the parent template in its place.
|
||||||
The content block was overriden to display the image files, and page-title has also be
|
The content block was overridden to display the image files, and page-title has also be
|
||||||
overriden to display a completely different title.
|
overridden to display a completely different title.
|
||||||
|
|
||||||
If we render grandchild.tpl we will get this:
|
If we render grandchild.tpl we will get this:
|
||||||
<html>
|
<html>
|
||||||
|
23
vendor/smarty/smarty/README.md
vendored
23
vendor/smarty/smarty/README.md
vendored
@ -1,4 +1,11 @@
|
|||||||
# Smarty 3 template engine
|
# Smarty 3 template engine
|
||||||
|
[smarty.net](https://www.smarty.net/)
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
For documentation see
|
||||||
|
[www.smarty.net/docs/en/](https://www.smarty.net/docs/en/)
|
||||||
|
|
||||||
## Distribution repository
|
## Distribution repository
|
||||||
|
|
||||||
> Smarty 3.1.28 introduces run time template inheritance
|
> Smarty 3.1.28 introduces run time template inheritance
|
||||||
@ -10,7 +17,7 @@ Smarty versions 3.1.11 or later are now on github and can be installed with Comp
|
|||||||
|
|
||||||
The "smarty/smarty" package will start at libs/.... subfolder.
|
The "smarty/smarty" package will start at libs/.... subfolder.
|
||||||
|
|
||||||
To get the latest stable version of Smarty 3.1 use
|
To get the latest stable version of Smarty 3.1 use:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -20,7 +27,7 @@ To get the latest stable version of Smarty 3.1 use
|
|||||||
|
|
||||||
in your composer.json file.
|
in your composer.json file.
|
||||||
|
|
||||||
To get the trunk version use
|
To get the trunk version use:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -28,7 +35,7 @@ To get the trunk version use
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
For a specific version use something like
|
For a specific version use something like:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -36,7 +43,7 @@ For a specific version use something like
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
PHPUnit test can be installed by corresponding composer entries like
|
PHPUnit test can be installed by corresponding composer entries like:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -44,7 +51,7 @@ PHPUnit test can be installed by corresponding composer entries like
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Similar applies for the lexer/parser generator
|
Similar applies for the lexer/parser generator.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -52,7 +59,7 @@ Similar applies for the lexer/parser generator
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Or you could use
|
Or you could use:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"require": {
|
"require": {
|
||||||
@ -60,6 +67,6 @@ Or you could use
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Which is a wrapper to install all 3 packages
|
Which is a wrapper to install all 3 packages.
|
||||||
|
|
||||||
Composer can also be used for Smarty2 versions 2.6.24 to 2.6.28
|
Composer can also be used for Smarty2 versions 2.6.24 to 2.6.30.
|
||||||
|
2
vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt
vendored
2
vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt
vendored
@ -1,5 +1,5 @@
|
|||||||
== Smarty2 backward compatibility ==
|
== Smarty2 backward compatibility ==
|
||||||
All Smarty2 specific API functions and deprecated functionallity has been moved
|
All Smarty2 specific API functions and deprecated functionality has been moved
|
||||||
to the SmartyBC class.
|
to the SmartyBC class.
|
||||||
|
|
||||||
== {php} Tag ==
|
== {php} Tag ==
|
||||||
|
4
vendor/smarty/smarty/SMARTY_3.1_NOTES.txt
vendored
4
vendor/smarty/smarty/SMARTY_3.1_NOTES.txt
vendored
@ -50,7 +50,7 @@ The escape modifier now knows the $double_encode option, which will
|
|||||||
prevent entities from being encoded again.
|
prevent entities from being encoded again.
|
||||||
|
|
||||||
The capitalize modifier now know the $lc_rest option, which makes sure
|
The capitalize modifier now know the $lc_rest option, which makes sure
|
||||||
all letters following a captial letter are lower-cased.
|
all letters following a capital letter are lower-cased.
|
||||||
|
|
||||||
The count_sentences modifier now accepts (.?!) as
|
The count_sentences modifier now accepts (.?!) as
|
||||||
legitimate endings of a sentence - previously only (.) was
|
legitimate endings of a sentence - previously only (.) was
|
||||||
@ -126,7 +126,7 @@ run on variable output.
|
|||||||
SYNTAX:
|
SYNTAX:
|
||||||
{setfilter filter1|filter2|filter3....}
|
{setfilter filter1|filter2|filter3....}
|
||||||
Smarty3 will lookup up matching filters in the following search order:
|
Smarty3 will lookup up matching filters in the following search order:
|
||||||
1. varibale filter plugin in plugins_dir.
|
1. variable filter plugin in plugins_dir.
|
||||||
2. a valid modifier. A modifier specification will also accept
|
2. a valid modifier. A modifier specification will also accept
|
||||||
additional parameter like filter2:'foo'
|
additional parameter like filter2:'foo'
|
||||||
3. a PHP function
|
3. a PHP function
|
||||||
|
143
vendor/smarty/smarty/change_log.txt
vendored
143
vendor/smarty/smarty/change_log.txt
vendored
@ -1,4 +1,145 @@
|
|||||||
===== 3.1.31 ===== (14.12.2016)
|
===== 3.1.32 ===== (24.04.2018)
|
||||||
|
24.04.2018
|
||||||
|
- bugfix possible Security Vulnerability in Smarty_Security class.
|
||||||
|
|
||||||
|
26.03.2018
|
||||||
|
- bugfix plugins may not be loaded if {function} or {block} tags are executed in nocache mode
|
||||||
|
https://github.com/smarty-php/smarty/issues/371
|
||||||
|
|
||||||
|
26.03.2018
|
||||||
|
- new feature {parent} = {$smarty.block.parent} {child} = {$smarty.block.child}
|
||||||
|
|
||||||
|
23.03.2018
|
||||||
|
- bugfix preg_replace could fail on large content resulting in a blank page https://github.com/smarty-php/smarty/issues/417
|
||||||
|
|
||||||
|
21.03.2018
|
||||||
|
- bugfix {$smarty.section...} used outside {section}{/section} showed incorrect values if {section}{/section} was called inside
|
||||||
|
another loop https://github.com/smarty-php/smarty/issues/422
|
||||||
|
- bugfix short form of {section} attributes did not work https://github.com/smarty-php/smarty/issues/428
|
||||||
|
|
||||||
|
17.03.2018
|
||||||
|
- improvement Smarty::compileAllTemplates() exit with a non-zero status code if max errors is reached https://github.com/smarty-php/smarty/pull/402
|
||||||
|
|
||||||
|
16.03.2018
|
||||||
|
- bugfix extends resource did not work with user defined left/right delimiter https://github.com/smarty-php/smarty/issues/419
|
||||||
|
|
||||||
|
22.11.2017
|
||||||
|
- bugfix {break} and {continue} could fail if {foreach}{/foreach} did contain other
|
||||||
|
looping tags like {for}, {section} and {while} https://github.com/smarty-php/smarty/issues/323
|
||||||
|
|
||||||
|
20.11.2017
|
||||||
|
- bugfix rework of newline spacing between tag code and template text.
|
||||||
|
now again identical with Smarty2 (forum topic 26878)
|
||||||
|
- replacement of " by '
|
||||||
|
|
||||||
|
05.11.2017
|
||||||
|
- lexer/parser optimization
|
||||||
|
- code cleanup and optimizations
|
||||||
|
- bugfix {$smarty.section.name.loop} used together with {$smarty.section.name.total} could produce
|
||||||
|
wrong results (forum topic 27041)
|
||||||
|
|
||||||
|
26.10.2017
|
||||||
|
- bugfix Smarty version was not filled in header comment of compiled and cached files
|
||||||
|
- optimization replace internal Smarty::$ds property by DIRECTORY_SEPARATOR
|
||||||
|
- deprecate functions Smarty::muteExpectedErrors() and Smarty::unmuteExpectedErrors()
|
||||||
|
as Smarty does no longer use error suppression like @filemtime().
|
||||||
|
for backward compatibility code is moved from Smarty class to an external class and still can be
|
||||||
|
called.
|
||||||
|
- correction of PHPDoc blocks
|
||||||
|
- minor code cleanup
|
||||||
|
|
||||||
|
21.10.2017
|
||||||
|
- bugfix custom delimiters could fail since modification of version 3.1.32-dev-23
|
||||||
|
https://github.com/smarty-php/smarty/issues/394
|
||||||
|
|
||||||
|
18.10.2017
|
||||||
|
- bugfix fix implementation of unclosed block tag in double quoted string of 12.10.2017
|
||||||
|
https://github.com/smarty-php/smarty/issues/396 https://github.com/smarty-php/smarty/issues/397
|
||||||
|
https://github.com/smarty-php/smarty/issues/391 https://github.com/smarty-php/smarty/issues/392
|
||||||
|
|
||||||
|
12.10.2017
|
||||||
|
- bugfix $smarty.block.child and $smarty.block.parent could not be used like any
|
||||||
|
$smarty special variable https://github.com/smarty-php/smarty/issues/393
|
||||||
|
- unclosed block tag in double quoted string must throw compiler exception.
|
||||||
|
https://github.com/smarty-php/smarty/issues/391 https://github.com/smarty-php/smarty/issues/392
|
||||||
|
|
||||||
|
07.10.2017
|
||||||
|
- bugfix modification of 9.8.2017 did fail on some recursive
|
||||||
|
tag nesting. https://github.com/smarty-php/smarty/issues/389
|
||||||
|
|
||||||
|
26.8.2017
|
||||||
|
- bugfix chained modifier failed when last modifier parameter is a signed value
|
||||||
|
https://github.com/smarty-php/smarty/issues/327
|
||||||
|
- bugfix templates filepath with multibyte characters did not work
|
||||||
|
https://github.com/smarty-php/smarty/issues/385
|
||||||
|
- bugfix {make_nocache} did display code if the template did not contain other nocache code
|
||||||
|
https://github.com/smarty-php/smarty/issues/369
|
||||||
|
|
||||||
|
09.8.2017
|
||||||
|
- improvement repeated delimiter like {{ and }} will be treated as literal
|
||||||
|
https://groups.google.com/forum/#!topic/smarty-developers/h9r82Bx4KZw
|
||||||
|
|
||||||
|
05.8.2017
|
||||||
|
- bugfix wordwrap modifier could fail if used in nocache code.
|
||||||
|
converted plugin file shared.mb_wordwrap.php into modifier.mb_wordwrap.php
|
||||||
|
- cleanup of _getSmartyObj()
|
||||||
|
|
||||||
|
31.7.2017
|
||||||
|
- Call clearstatcache() after mkdir() failure https://github.com/smarty-php/smarty/pull/379
|
||||||
|
|
||||||
|
30.7.2017
|
||||||
|
- rewrite mkdir() bugfix to retry automatically see https://github.com/smarty-php/smarty/pull/377
|
||||||
|
https://github.com/smarty-php/smarty/pull/379
|
||||||
|
|
||||||
|
21.7.2017
|
||||||
|
- security possible PHP code injection on custom resources at display() or fetch()
|
||||||
|
calls if the resource does not sanitize the template name
|
||||||
|
- bugfix fix 'mkdir(): File exists' error on create directory from parallel
|
||||||
|
processes https://github.com/smarty-php/smarty/pull/377
|
||||||
|
- bugfix solve preg_match() hhvm parameter problem https://github.com/smarty-php/smarty/pull/372
|
||||||
|
|
||||||
|
27.5.2017
|
||||||
|
- bugfix change compiled code for registered function and modifiers to called as callable to allow closures
|
||||||
|
https://github.com/smarty-php/smarty/pull/368, https://github.com/smarty-php/smarty/issues/273
|
||||||
|
- bugfix https://github.com/smarty-php/smarty/pull/368 did break the default plugin handler
|
||||||
|
- improvement replace phpversion() by PHP_VERSION constant.
|
||||||
|
https://github.com/smarty-php/smarty/pull/363
|
||||||
|
|
||||||
|
21.5.2017
|
||||||
|
- performance store flag for already required shared plugin functions in static variable or
|
||||||
|
Smarty's $_cache to improve performance when plugins are often called
|
||||||
|
https://github.com/smarty-php/smarty/commit/51e0d5cd405d764a4ea257d1bac1fb1205f74528#commitcomment-22280086
|
||||||
|
- bugfix remove special treatment of classes implementing ArrayAccess in {foreach}
|
||||||
|
https://github.com/smarty-php/smarty/issues/332
|
||||||
|
- bugfix remove deleted files by clear_cache() and clear_compiled_template() from
|
||||||
|
ACP cache if present, add some is_file() checks to avoid possible warnings on filemtime()
|
||||||
|
caused by above functions.
|
||||||
|
https://github.com/smarty-php/smarty/issues/341
|
||||||
|
- bugfix version 3.1.31 did fail under PHP 5.2
|
||||||
|
https://github.com/smarty-php/smarty/issues/365
|
||||||
|
|
||||||
|
19.5.2017
|
||||||
|
- change properties $accessMap and $obsoleteProperties from private to protected
|
||||||
|
https://github.com/smarty-php/smarty/issues/351
|
||||||
|
- new feature The named capture buffers can now be accessed also as array
|
||||||
|
See NEWS_FEATURES.txt https://github.com/smarty-php/smarty/issues/366
|
||||||
|
- improvement check if ini_get() and ini_set() not disabled
|
||||||
|
https://github.com/smarty-php/smarty/pull/362
|
||||||
|
|
||||||
|
24.4.2017
|
||||||
|
- fix spelling https://github.com/smarty-php/smarty/commit/e3eda8a5f5653d8abb960eb1bc47e3eca679b1b4#commitcomment-21803095
|
||||||
|
|
||||||
|
17.4.2017
|
||||||
|
- correct generated code on empty() and isset() call, observe change PHP behaviour since PHP 5.5
|
||||||
|
https://github.com/smarty-php/smarty/issues/347
|
||||||
|
|
||||||
|
14.4.2017
|
||||||
|
- merge pull requests https://github.com/smarty-php/smarty/pull/349, https://github.com/smarty-php/smarty/pull/322 and https://github.com/smarty-php/smarty/pull/337 to fix spelling and annotation
|
||||||
|
|
||||||
|
13.4.2017
|
||||||
|
- bugfix array_merge() parameter should be checked https://github.com/smarty-php/smarty/issues/350
|
||||||
|
|
||||||
|
===== 3.1.31 ===== (14.12.2016)
|
||||||
23.11.2016
|
23.11.2016
|
||||||
- move template object cache into static variables
|
- move template object cache into static variables
|
||||||
|
|
||||||
|
39
vendor/smarty/smarty/composer.json
vendored
Normal file
39
vendor/smarty/smarty/composer.json
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"name": "smarty/smarty",
|
||||||
|
"type": "library",
|
||||||
|
"description": "Smarty - the compiling PHP template engine",
|
||||||
|
"keywords": ["templating"],
|
||||||
|
"homepage": "http://www.smarty.net",
|
||||||
|
"license": "LGPL-3.0",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Monte Ohrt",
|
||||||
|
"email": "monte@ohrt.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Uwe Tews",
|
||||||
|
"email": "uwe.tews@googlemail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Rodney Rehm",
|
||||||
|
"email": "rodney.rehm@medialize.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"irc": "irc://irc.freenode.org/smarty",
|
||||||
|
"issues": "https://github.com/smarty-php/smarty/issues",
|
||||||
|
"forum": "http://www.smarty.net/forums/"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.2"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": ["libs/bootstrap.php"]
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1.x-dev"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -91,7 +91,7 @@ class Smarty_CacheResource_Pdo extends Smarty_CacheResource_Custom
|
|||||||
*
|
*
|
||||||
* @param PDO $pdo PDO : active connection
|
* @param PDO $pdo PDO : active connection
|
||||||
* @param string $table : table (or view) name
|
* @param string $table : table (or view) name
|
||||||
* @param string $database : optionnal - if table is located in another db
|
* @param string $database : optional - if table is located in another db
|
||||||
*/
|
*/
|
||||||
public function __construct(PDO $pdo, $table, $database = null)
|
public function __construct(PDO $pdo, $table, $database = null)
|
||||||
{
|
{
|
||||||
|
1
vendor/smarty/smarty/error_reporting.ini
vendored
Normal file
1
vendor/smarty/smarty/error_reporting.ini
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
4
vendor/smarty/smarty/libs/Autoloader.php
vendored
4
vendor/smarty/smarty/libs/Autoloader.php
vendored
@ -14,7 +14,7 @@
|
|||||||
* require_once '...path/Autoloader.php';
|
* require_once '...path/Autoloader.php';
|
||||||
* Smarty_Autoloader::register();
|
* Smarty_Autoloader::register();
|
||||||
* or
|
* or
|
||||||
* include '...path/bootstarp.php';
|
* include '...path/bootstrap.php';
|
||||||
*
|
*
|
||||||
* $smarty = new Smarty();
|
* $smarty = new Smarty();
|
||||||
*/
|
*/
|
||||||
@ -76,7 +76,7 @@ class Smarty_Autoloader
|
|||||||
self::$SMARTY_DIR = defined('SMARTY_DIR') ? SMARTY_DIR : dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
self::$SMARTY_DIR = defined('SMARTY_DIR') ? SMARTY_DIR : dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
||||||
self::$SMARTY_SYSPLUGINS_DIR = defined('SMARTY_SYSPLUGINS_DIR') ? SMARTY_SYSPLUGINS_DIR :
|
self::$SMARTY_SYSPLUGINS_DIR = defined('SMARTY_SYSPLUGINS_DIR') ? SMARTY_SYSPLUGINS_DIR :
|
||||||
self::$SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR;
|
self::$SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR;
|
||||||
if (version_compare(phpversion(), '5.3.0', '>=')) {
|
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
|
||||||
spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
|
spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
|
||||||
} else {
|
} else {
|
||||||
spl_autoload_register(array(__CLASS__, 'autoload'));
|
spl_autoload_register(array(__CLASS__, 'autoload'));
|
||||||
|
673
vendor/smarty/smarty/libs/Smarty.class.php
vendored
673
vendor/smarty/smarty/libs/Smarty.class.php
vendored
File diff suppressed because it is too large
Load Diff
23
vendor/smarty/smarty/libs/SmartyBC.class.php
vendored
23
vendor/smarty/smarty/libs/SmartyBC.class.php
vendored
@ -100,6 +100,8 @@ class SmartyBC extends Smarty
|
|||||||
* @param string $function_impl the name of the PHP function to register
|
* @param string $function_impl the name of the PHP function to register
|
||||||
* @param bool $cacheable
|
* @param bool $cacheable
|
||||||
* @param mixed $cache_attrs
|
* @param mixed $cache_attrs
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
|
public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
|
||||||
{
|
{
|
||||||
@ -153,6 +155,8 @@ class SmartyBC extends Smarty
|
|||||||
* @param string $block_impl PHP function to register
|
* @param string $block_impl PHP function to register
|
||||||
* @param bool $cacheable
|
* @param bool $cacheable
|
||||||
* @param mixed $cache_attrs
|
* @param mixed $cache_attrs
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
|
public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
|
||||||
{
|
{
|
||||||
@ -175,6 +179,8 @@ class SmartyBC extends Smarty
|
|||||||
* @param string $function name of template function
|
* @param string $function name of template function
|
||||||
* @param string $function_impl name of PHP function to register
|
* @param string $function_impl name of PHP function to register
|
||||||
* @param bool $cacheable
|
* @param bool $cacheable
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_compiler_function($function, $function_impl, $cacheable = true)
|
public function register_compiler_function($function, $function_impl, $cacheable = true)
|
||||||
{
|
{
|
||||||
@ -196,6 +202,8 @@ class SmartyBC extends Smarty
|
|||||||
*
|
*
|
||||||
* @param string $modifier name of template modifier
|
* @param string $modifier name of template modifier
|
||||||
* @param string $modifier_impl name of PHP function to register
|
* @param string $modifier_impl name of PHP function to register
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_modifier($modifier, $modifier_impl)
|
public function register_modifier($modifier, $modifier_impl)
|
||||||
{
|
{
|
||||||
@ -238,6 +246,8 @@ class SmartyBC extends Smarty
|
|||||||
* to a template before compiling
|
* to a template before compiling
|
||||||
*
|
*
|
||||||
* @param callable $function
|
* @param callable $function
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_prefilter($function)
|
public function register_prefilter($function)
|
||||||
{
|
{
|
||||||
@ -259,6 +269,8 @@ class SmartyBC extends Smarty
|
|||||||
* to a compiled template after compilation
|
* to a compiled template after compilation
|
||||||
*
|
*
|
||||||
* @param callable $function
|
* @param callable $function
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_postfilter($function)
|
public function register_postfilter($function)
|
||||||
{
|
{
|
||||||
@ -280,6 +292,8 @@ class SmartyBC extends Smarty
|
|||||||
* to a template output
|
* to a template output
|
||||||
*
|
*
|
||||||
* @param callable $function
|
* @param callable $function
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function register_outputfilter($function)
|
public function register_outputfilter($function)
|
||||||
{
|
{
|
||||||
@ -301,6 +315,8 @@ class SmartyBC extends Smarty
|
|||||||
*
|
*
|
||||||
* @param string $type filter type
|
* @param string $type filter type
|
||||||
* @param string $name filter name
|
* @param string $name filter name
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function load_filter($type, $name)
|
public function load_filter($type, $name)
|
||||||
{
|
{
|
||||||
@ -341,7 +357,9 @@ class SmartyBC extends Smarty
|
|||||||
* @param string $cache_id
|
* @param string $cache_id
|
||||||
* @param string $compile_id
|
* @param string $compile_id
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return bool
|
||||||
|
* @throws \Exception
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
|
public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
|
||||||
{
|
{
|
||||||
@ -377,7 +395,8 @@ class SmartyBC extends Smarty
|
|||||||
*
|
*
|
||||||
* @param string $tpl_file
|
* @param string $tpl_file
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return bool
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function template_exists($tpl_file)
|
public function template_exists($tpl_file)
|
||||||
{
|
{
|
||||||
|
4
vendor/smarty/smarty/libs/bootstrap.php
vendored
4
vendor/smarty/smarty/libs/bootstrap.php
vendored
@ -12,6 +12,6 @@
|
|||||||
* Load and register Smarty Autoloader
|
* Load and register Smarty Autoloader
|
||||||
*/
|
*/
|
||||||
if (!class_exists('Smarty_Autoloader')) {
|
if (!class_exists('Smarty_Autoloader')) {
|
||||||
require __DIR__ . '/Autoloader.php';
|
require dirname(__FILE__) . '/Autoloader.php';
|
||||||
}
|
}
|
||||||
Smarty_Autoloader::register();
|
Smarty_Autoloader::register(true);
|
||||||
|
@ -5,22 +5,21 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsBlock
|
* @subpackage PluginsBlock
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {textformat}{/textformat} block plugin
|
* Smarty {textformat}{/textformat} block plugin
|
||||||
* Type: block function<br>
|
* Type: block function
|
||||||
* Name: textformat<br>
|
* Name: textformat
|
||||||
* Purpose: format text a certain way with preset styles
|
* Purpose: format text a certain way with preset styles
|
||||||
* or custom wrap/indent settings<br>
|
* or custom wrap/indent settings
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - style - string (email)
|
* - style - string (email)
|
||||||
* - indent - integer (0)
|
* - indent - integer (0)
|
||||||
* - wrap - integer (80)
|
* - wrap - integer (80)
|
||||||
* - wrap_char - string ("\n")
|
* - wrap_char - string ("\n")
|
||||||
* - indent_char - string (" ")
|
* - indent_char - string (" ")
|
||||||
* - wrap_boundary - boolean (true)
|
* - wrap_boundary - boolean (true)
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
|
* @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -32,14 +31,16 @@
|
|||||||
*
|
*
|
||||||
* @return string content re-formatted
|
* @return string content re-formatted
|
||||||
* @author Monte Ohrt <monte at ohrt dot com>
|
* @author Monte Ohrt <monte at ohrt dot com>
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_block_textformat($params, $content, $template, &$repeat)
|
function smarty_block_textformat($params, $content, Smarty_Internal_Template $template, &$repeat)
|
||||||
{
|
{
|
||||||
if (is_null($content)) {
|
if (is_null($content)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Smarty::$_MBSTRING && !is_callable('smarty_mb_wordwrap')) {
|
if (Smarty::$_MBSTRING) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php');
|
$template->_checkPlugins(array(array('function' => 'smarty_modifier_mb_wordwrap',
|
||||||
|
'file' => SMARTY_PLUGINS_DIR . 'modifier.mb_wordwrap.php')));
|
||||||
}
|
}
|
||||||
|
|
||||||
$style = null;
|
$style = null;
|
||||||
@ -71,11 +72,11 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
trigger_error("textformat: unknown attribute '$_key'");
|
trigger_error("textformat: unknown attribute '{$_key}'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($style == 'email') {
|
if ($style === 'email') {
|
||||||
$wrap = 72;
|
$wrap = 72;
|
||||||
}
|
}
|
||||||
// split into paragraphs
|
// split into paragraphs
|
||||||
@ -87,15 +88,17 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
|
|||||||
}
|
}
|
||||||
// convert mult. spaces & special chars to single space
|
// convert mult. spaces & special chars to single space
|
||||||
$_paragraph =
|
$_paragraph =
|
||||||
preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER, '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER),
|
preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER,
|
||||||
array(' ', ''), $_paragraph);
|
'!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER),
|
||||||
|
array(' ',
|
||||||
|
''), $_paragraph);
|
||||||
// indent first line
|
// indent first line
|
||||||
if ($indent_first > 0) {
|
if ($indent_first > 0) {
|
||||||
$_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph;
|
$_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph;
|
||||||
}
|
}
|
||||||
// wordwrap sentences
|
// wordwrap sentences
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
$_paragraph = smarty_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
|
$_paragraph = smarty_modifier_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
|
||||||
} else {
|
} else {
|
||||||
$_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
|
$_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {counter} function plugin
|
* Smarty {counter} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: counter<br>
|
* Name: counter
|
||||||
* Purpose: print out a counter value
|
* Purpose: print out a counter value
|
||||||
*
|
*
|
||||||
* @author Monte Ohrt <monte at ohrt dot com>
|
* @author Monte Ohrt <monte at ohrt dot com>
|
||||||
@ -63,7 +63,7 @@ function smarty_function_counter($params, $template)
|
|||||||
$counter[ 'direction' ] = $params[ 'direction' ];
|
$counter[ 'direction' ] = $params[ 'direction' ];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($counter[ 'direction' ] == "down") {
|
if ($counter[ 'direction' ] === 'down') {
|
||||||
$counter[ 'count' ] -= $counter[ 'skip' ];
|
$counter[ 'count' ] -= $counter[ 'skip' ];
|
||||||
} else {
|
} else {
|
||||||
$counter[ 'count' ] += $counter[ 'skip' ];
|
$counter[ 'count' ] += $counter[ 'skip' ];
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {cycle} function plugin
|
* Smarty {cycle} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: cycle<br>
|
* Name: cycle
|
||||||
* Date: May 3, 2002<br>
|
* Date: May 3, 2002
|
||||||
* Purpose: cycle through given values<br>
|
* Purpose: cycle through given values
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - name - name of cycle (optional)
|
* - name - name of cycle (optional)
|
||||||
* - values - comma separated list of values to cycle, or an array of values to cycle
|
* - values - comma separated list of values to cycle, or an array of values to cycle
|
||||||
* (this can be left out for subsequent calls)
|
* (this can be left out for subsequent calls)
|
||||||
@ -22,13 +22,13 @@
|
|||||||
* - advance - boolean - whether or not to advance the cycle
|
* - advance - boolean - whether or not to advance the cycle
|
||||||
* - delimiter - the value delimiter, default is ","
|
* - delimiter - the value delimiter, default is ","
|
||||||
* - assign - boolean, assigns to template var instead of printed.
|
* - assign - boolean, assigns to template var instead of printed.
|
||||||
* </pre>
|
*
|
||||||
* Examples:<br>
|
* Examples:
|
||||||
* <pre>
|
*
|
||||||
* {cycle values="#eeeeee,#d0d0d0d"}
|
* {cycle values="#eeeeee,#d0d0d0d"}
|
||||||
* {cycle name=row values="one,two,three" reset=true}
|
* {cycle name=row values="one,two,three" reset=true}
|
||||||
* {cycle name=row}
|
* {cycle name=row}
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
|
* @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -55,12 +55,12 @@ function smarty_function_cycle($params, $template)
|
|||||||
|
|
||||||
if (!isset($params[ 'values' ])) {
|
if (!isset($params[ 'values' ])) {
|
||||||
if (!isset($cycle_vars[ $name ][ 'values' ])) {
|
if (!isset($cycle_vars[ $name ][ 'values' ])) {
|
||||||
trigger_error("cycle: missing 'values' parameter");
|
trigger_error('cycle: missing \'values\' parameter');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (isset($cycle_vars[ $name ][ 'values' ]) && $cycle_vars[ $name ][ 'values' ] != $params[ 'values' ]) {
|
if (isset($cycle_vars[ $name ][ 'values' ]) && $cycle_vars[ $name ][ 'values' ] !== $params[ 'values' ]) {
|
||||||
$cycle_vars[ $name ][ 'index' ] = 0;
|
$cycle_vars[ $name ][ 'index' ] = 0;
|
||||||
}
|
}
|
||||||
$cycle_vars[ $name ][ 'values' ] = $params[ 'values' ];
|
$cycle_vars[ $name ][ 'values' ] = $params[ 'values' ];
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {fetch} plugin
|
* Smarty {fetch} plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: fetch<br>
|
* Name: fetch
|
||||||
* Purpose: fetch file, web or ftp data and display results
|
* Purpose: fetch file, web or ftp data and display results
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
|
* @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
|
||||||
@ -25,7 +25,7 @@
|
|||||||
function smarty_function_fetch($params, $template)
|
function smarty_function_fetch($params, $template)
|
||||||
{
|
{
|
||||||
if (empty($params[ 'file' ])) {
|
if (empty($params[ 'file' ])) {
|
||||||
trigger_error("[plugin] fetch parameter 'file' cannot be empty", E_USER_NOTICE);
|
trigger_error('[plugin] fetch parameter \'file\' cannot be empty', E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -55,15 +55,15 @@ function smarty_function_fetch($params, $template)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$content = '';
|
$content = '';
|
||||||
if ($protocol == 'http') {
|
if ($protocol === 'http') {
|
||||||
// http fetch
|
// http fetch
|
||||||
if ($uri_parts = parse_url($params[ 'file' ])) {
|
if ($uri_parts = parse_url($params[ 'file' ])) {
|
||||||
// set defaults
|
// set defaults
|
||||||
$host = $server_name = $uri_parts[ 'host' ];
|
$host = $server_name = $uri_parts[ 'host' ];
|
||||||
$timeout = 30;
|
$timeout = 30;
|
||||||
$accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
|
$accept = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
|
||||||
$agent = "Smarty Template Engine " . Smarty::SMARTY_VERSION;
|
$agent = 'Smarty Template Engine ' . Smarty::SMARTY_VERSION;
|
||||||
$referer = "";
|
$referer = '';
|
||||||
$uri = !empty($uri_parts[ 'path' ]) ? $uri_parts[ 'path' ] : '/';
|
$uri = !empty($uri_parts[ 'path' ]) ? $uri_parts[ 'path' ] : '/';
|
||||||
$uri .= !empty($uri_parts[ 'query' ]) ? '?' . $uri_parts[ 'query' ] : '';
|
$uri .= !empty($uri_parts[ 'query' ]) ? '?' . $uri_parts[ 'query' ] : '';
|
||||||
$_is_proxy = false;
|
$_is_proxy = false;
|
||||||
@ -81,29 +81,29 @@ function smarty_function_fetch($params, $template)
|
|||||||
// loop through parameters, setup headers
|
// loop through parameters, setup headers
|
||||||
foreach ($params as $param_key => $param_value) {
|
foreach ($params as $param_key => $param_value) {
|
||||||
switch ($param_key) {
|
switch ($param_key) {
|
||||||
case "file":
|
case 'file':
|
||||||
case "assign":
|
case 'assign':
|
||||||
case "assign_headers":
|
case 'assign_headers':
|
||||||
break;
|
break;
|
||||||
case "user":
|
case 'user':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$user = $param_value;
|
$user = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "pass":
|
case 'pass':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$pass = $param_value;
|
$pass = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "accept":
|
case 'accept':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$accept = $param_value;
|
$accept = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "header":
|
case 'header':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
if (!preg_match('![\w\d-]+: .+!', $param_value)) {
|
if (!preg_match('![\w\d-]+: .+!', $param_value)) {
|
||||||
trigger_error("[plugin] invalid header format '" . $param_value . "'", E_USER_NOTICE);
|
trigger_error("[plugin] invalid header format '{$param_value}'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@ -111,41 +111,41 @@ function smarty_function_fetch($params, $template)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "proxy_host":
|
case 'proxy_host':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$proxy_host = $param_value;
|
$proxy_host = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "proxy_port":
|
case 'proxy_port':
|
||||||
if (!preg_match('!\D!', $param_value)) {
|
if (!preg_match('!\D!', $param_value)) {
|
||||||
$proxy_port = (int) $param_value;
|
$proxy_port = (int) $param_value;
|
||||||
} else {
|
} else {
|
||||||
trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE);
|
trigger_error("[plugin] invalid value for attribute '{$param_key }'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "agent":
|
case 'agent':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$agent = $param_value;
|
$agent = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "referer":
|
case 'referer':
|
||||||
if (!empty($param_value)) {
|
if (!empty($param_value)) {
|
||||||
$referer = $param_value;
|
$referer = $param_value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "timeout":
|
case 'timeout':
|
||||||
if (!preg_match('!\D!', $param_value)) {
|
if (!preg_match('!\D!', $param_value)) {
|
||||||
$timeout = (int) $param_value;
|
$timeout = (int) $param_value;
|
||||||
} else {
|
} else {
|
||||||
trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE);
|
trigger_error("[plugin] invalid value for attribute '{$param_key}'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
trigger_error("[plugin] unrecognized attribute '" . $param_key . "'", E_USER_NOTICE);
|
trigger_error("[plugin] unrecognized attribute '{$param_key}'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -185,7 +185,7 @@ function smarty_function_fetch($params, $template)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($user) && !empty($pass)) {
|
if (!empty($user) && !empty($pass)) {
|
||||||
fputs($fp, "Authorization: BASIC " . base64_encode("$user:$pass") . "\r\n");
|
fputs($fp, 'Authorization: BASIC ' . base64_encode("$user:$pass") . "\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
fputs($fp, "\r\n");
|
fputs($fp, "\r\n");
|
||||||
|
@ -5,22 +5,21 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFunction
|
* @subpackage PluginsFunction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_checkboxes} function plugin
|
* Smarty {html_checkboxes} function plugin
|
||||||
* File: function.html_checkboxes.php<br>
|
* File: function.html_checkboxes.php
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_checkboxes<br>
|
* Name: html_checkboxes
|
||||||
* Date: 24.Feb.2003<br>
|
* Date: 24.Feb.2003
|
||||||
* Purpose: Prints out a list of checkbox input types<br>
|
* Purpose: Prints out a list of checkbox input types
|
||||||
* Examples:
|
* Examples:
|
||||||
* <pre>
|
*
|
||||||
* {html_checkboxes values=$ids output=$names}
|
* {html_checkboxes values=$ids output=$names}
|
||||||
* {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
|
* {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
|
||||||
* {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
|
* {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
|
||||||
* </pre>
|
*
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - name (optional) - string default "checkbox"
|
* - name (optional) - string default "checkbox"
|
||||||
* - values (required) - array
|
* - values (required) - array
|
||||||
* - options (optional) - associative array
|
* - options (optional) - associative array
|
||||||
@ -29,7 +28,7 @@
|
|||||||
* - output (optional) - the output next to each checkbox
|
* - output (optional) - the output next to each checkbox
|
||||||
* - assign (optional) - assign the output as an array to this variable
|
* - assign (optional) - assign the output as an array to this variable
|
||||||
* - escape (optional) - escape the content (not value), defaults to true
|
* - escape (optional) - escape the content (not value), defaults to true
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
|
* @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -38,16 +37,16 @@
|
|||||||
* @version 1.0
|
* @version 1.0
|
||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
* @param object $template template object
|
* @param Smarty_Internal_Template $template template object
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @uses smarty_function_escape_special_chars()
|
* @uses smarty_function_escape_special_chars()
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_checkboxes($params, $template)
|
function smarty_function_html_checkboxes($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
|
||||||
|
|
||||||
$name = 'checkbox';
|
$name = 'checkbox';
|
||||||
$values = null;
|
$values = null;
|
||||||
@ -89,11 +88,11 @@ function smarty_function_html_checkboxes($params, $template)
|
|||||||
$selected = array();
|
$selected = array();
|
||||||
foreach ($_val as $_sel) {
|
foreach ($_val as $_sel) {
|
||||||
if (is_object($_sel)) {
|
if (is_object($_sel)) {
|
||||||
if (method_exists($_sel, "__toString")) {
|
if (method_exists($_sel, '__toString')) {
|
||||||
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
|
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_checkboxes: selected attribute contains an object of class '" .
|
trigger_error('html_checkboxes: selected attribute contains an object of class \'' .
|
||||||
get_class($_sel) . "' without __toString() method", E_USER_NOTICE);
|
get_class($_sel) . '\' without __toString() method', E_USER_NOTICE);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -102,11 +101,11 @@ function smarty_function_html_checkboxes($params, $template)
|
|||||||
$selected[ $_sel ] = true;
|
$selected[ $_sel ] = true;
|
||||||
}
|
}
|
||||||
} elseif (is_object($_val)) {
|
} elseif (is_object($_val)) {
|
||||||
if (method_exists($_val, "__toString")) {
|
if (method_exists($_val, '__toString')) {
|
||||||
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_checkboxes: selected attribute is an object of class '" . get_class($_val) .
|
trigger_error('html_checkboxes: selected attribute is an object of class \'' . get_class($_val) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$selected = smarty_function_escape_special_chars((string) $_val);
|
$selected = smarty_function_escape_special_chars((string) $_val);
|
||||||
@ -129,7 +128,7 @@ function smarty_function_html_checkboxes($params, $template)
|
|||||||
case 'readonly':
|
case 'readonly':
|
||||||
if (!empty($params[ 'strict' ])) {
|
if (!empty($params[ 'strict' ])) {
|
||||||
if (!is_scalar($_val)) {
|
if (!is_scalar($_val)) {
|
||||||
trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute",
|
trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute",
|
||||||
E_USER_NOTICE);
|
E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,7 +144,7 @@ function smarty_function_html_checkboxes($params, $template)
|
|||||||
if (!is_array($_val)) {
|
if (!is_array($_val)) {
|
||||||
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
trigger_error("html_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -178,18 +177,30 @@ function smarty_function_html_checkboxes($params, $template)
|
|||||||
return implode("\n", $_html_result);
|
return implode("\n", $_html_result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $name
|
||||||
|
* @param $value
|
||||||
|
* @param $output
|
||||||
|
* @param $selected
|
||||||
|
* @param $extra
|
||||||
|
* @param $separator
|
||||||
|
* @param $labels
|
||||||
|
* @param $label_ids
|
||||||
|
* @param bool $escape
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels,
|
function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels,
|
||||||
$label_ids, $escape = true)
|
$label_ids, $escape = true)
|
||||||
{
|
{
|
||||||
$_output = '';
|
$_output = '';
|
||||||
|
|
||||||
if (is_object($value)) {
|
if (is_object($value)) {
|
||||||
if (method_exists($value, "__toString")) {
|
if (method_exists($value, '__toString')) {
|
||||||
$value = (string) $value->__toString();
|
$value = (string) $value->__toString();
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: value is an object of class '" . get_class($value) .
|
trigger_error('html_options: value is an object of class \'' . get_class($value) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -198,11 +209,11 @@ function smarty_function_html_checkboxes_output($name, $value, $output, $selecte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_object($output)) {
|
if (is_object($output)) {
|
||||||
if (method_exists($output, "__toString")) {
|
if (method_exists($output, '__toString')) {
|
||||||
$output = (string) $output->__toString();
|
$output = (string) $output->__toString();
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: output is an object of class '" . get_class($output) .
|
trigger_error('html_options: output is an object of class \'' . get_class($output) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
@ -8,20 +8,20 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_image} function plugin
|
* Smarty {html_image} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_image<br>
|
* Name: html_image
|
||||||
* Date: Feb 24, 2003<br>
|
* Date: Feb 24, 2003
|
||||||
* Purpose: format HTML tags for the image<br>
|
* Purpose: format HTML tags for the image
|
||||||
* Examples: {html_image file="/images/masthead.gif"}<br>
|
* Examples: {html_image file="/images/masthead.gif"}
|
||||||
* Output: <img src="/images/masthead.gif" width=400 height=23><br>
|
* Output: <img src="/images/masthead.gif" width=400 height=23>
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - file - (required) - file (and path) of image
|
* - file - (required) - file (and path) of image
|
||||||
* - height - (optional) - image height (default actual height)
|
* - height - (optional) - image height (default actual height)
|
||||||
* - width - (optional) - image width (default actual width)
|
* - width - (optional) - image width (default actual width)
|
||||||
* - basedir - (optional) - base directory for absolute paths, default is environment variable DOCUMENT_ROOT
|
* - basedir - (optional) - base directory for absolute paths, default is environment variable DOCUMENT_ROOT
|
||||||
* - path_prefix - prefix for path output (optional, default empty)
|
* - path_prefix - prefix for path output (optional, default empty)
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
|
* @link http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -36,11 +36,10 @@
|
|||||||
* @return string
|
* @return string
|
||||||
* @uses smarty_function_escape_special_chars()
|
* @uses smarty_function_escape_special_chars()
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_image($params, $template)
|
function smarty_function_html_image($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
|
||||||
|
|
||||||
$alt = '';
|
$alt = '';
|
||||||
$file = '';
|
$file = '';
|
||||||
@ -66,7 +65,7 @@ function smarty_function_html_image($params, $template)
|
|||||||
if (!is_array($_val)) {
|
if (!is_array($_val)) {
|
||||||
$$_key = smarty_function_escape_special_chars($_val);
|
$$_key = smarty_function_escape_special_chars($_val);
|
||||||
} else {
|
} else {
|
||||||
throw new SmartyException ("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
throw new SmartyException ("html_image: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -80,19 +79,19 @@ function smarty_function_html_image($params, $template)
|
|||||||
if (!is_array($_val)) {
|
if (!is_array($_val)) {
|
||||||
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
||||||
} else {
|
} else {
|
||||||
throw new SmartyException ("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
throw new SmartyException ("html_image: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($file)) {
|
if (empty($file)) {
|
||||||
trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE);
|
trigger_error('html_image: missing \'file\' parameter', E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($file[ 0 ] == '/') {
|
if ($file[ 0 ] === '/') {
|
||||||
$_image_path = $basedir . $file;
|
$_image_path = $basedir . $file;
|
||||||
} else {
|
} else {
|
||||||
$_image_path = $file;
|
$_image_path = $file;
|
||||||
@ -126,15 +125,15 @@ function smarty_function_html_image($params, $template)
|
|||||||
// FIXME: (rodneyrehm) getimagesize() loads the complete file off a remote resource, use custom [jpg,png,gif]header reader!
|
// FIXME: (rodneyrehm) getimagesize() loads the complete file off a remote resource, use custom [jpg,png,gif]header reader!
|
||||||
if (!$_image_data = @getimagesize($_image_path)) {
|
if (!$_image_data = @getimagesize($_image_path)) {
|
||||||
if (!file_exists($_image_path)) {
|
if (!file_exists($_image_path)) {
|
||||||
trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE);
|
trigger_error("html_image: unable to find '{$_image_path}'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} elseif (!is_readable($_image_path)) {
|
} elseif (!is_readable($_image_path)) {
|
||||||
trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE);
|
trigger_error("html_image: unable to read '{$_image_path}'", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE);
|
trigger_error("html_image: '{$_image_path}' is not a valid image file", E_USER_NOTICE);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -5,15 +5,14 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFunction
|
* @subpackage PluginsFunction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_options} function plugin
|
* Smarty {html_options} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_options<br>
|
* Name: html_options
|
||||||
* Purpose: Prints the list of <option> tags generated from
|
* Purpose: Prints the list of <option> tags generated from
|
||||||
* the passed parameters<br>
|
* the passed parameters
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - name (optional) - string default "select"
|
* - name (optional) - string default "select"
|
||||||
* - values (required) - if no options supplied) - array
|
* - values (required) - if no options supplied) - array
|
||||||
* - options (required) - if no values supplied) - associative array
|
* - options (required) - if no values supplied) - associative array
|
||||||
@ -21,7 +20,7 @@
|
|||||||
* - output (required) - if not options supplied) - array
|
* - output (required) - if not options supplied) - array
|
||||||
* - id (optional) - string default not set
|
* - id (optional) - string default not set
|
||||||
* - class (optional) - string default not set
|
* - class (optional) - string default not set
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
|
* @link http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -30,14 +29,16 @@
|
|||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
*
|
*
|
||||||
|
* @param \Smarty_Internal_Template $template
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @uses smarty_function_escape_special_chars()
|
* @uses smarty_function_escape_special_chars()
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_options($params)
|
function smarty_function_html_options($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
|
||||||
|
|
||||||
$name = null;
|
$name = null;
|
||||||
$values = null;
|
$values = null;
|
||||||
@ -71,11 +72,11 @@ function smarty_function_html_options($params)
|
|||||||
$selected = array();
|
$selected = array();
|
||||||
foreach ($_val as $_sel) {
|
foreach ($_val as $_sel) {
|
||||||
if (is_object($_sel)) {
|
if (is_object($_sel)) {
|
||||||
if (method_exists($_sel, "__toString")) {
|
if (method_exists($_sel, '__toString')) {
|
||||||
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
|
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: selected attribute contains an object of class '" .
|
trigger_error('html_options: selected attribute contains an object of class \'' .
|
||||||
get_class($_sel) . "' without __toString() method", E_USER_NOTICE);
|
get_class($_sel) . '\' without __toString() method', E_USER_NOTICE);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -84,11 +85,11 @@ function smarty_function_html_options($params)
|
|||||||
$selected[ $_sel ] = true;
|
$selected[ $_sel ] = true;
|
||||||
}
|
}
|
||||||
} elseif (is_object($_val)) {
|
} elseif (is_object($_val)) {
|
||||||
if (method_exists($_val, "__toString")) {
|
if (method_exists($_val, '__toString')) {
|
||||||
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: selected attribute is an object of class '" . get_class($_val) .
|
trigger_error('html_options: selected attribute is an object of class \'' . get_class($_val) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$selected = smarty_function_escape_special_chars((string) $_val);
|
$selected = smarty_function_escape_special_chars((string) $_val);
|
||||||
@ -102,7 +103,7 @@ function smarty_function_html_options($params)
|
|||||||
case 'readonly':
|
case 'readonly':
|
||||||
if (!empty($params[ 'strict' ])) {
|
if (!empty($params[ 'strict' ])) {
|
||||||
if (!is_scalar($_val)) {
|
if (!is_scalar($_val)) {
|
||||||
trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute",
|
trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute",
|
||||||
E_USER_NOTICE);
|
E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +119,7 @@ function smarty_function_html_options($params)
|
|||||||
if (!is_array($_val)) {
|
if (!is_array($_val)) {
|
||||||
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
trigger_error("html_options: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -154,7 +155,16 @@ function smarty_function_html_options($params)
|
|||||||
|
|
||||||
return $_html_result;
|
return $_html_result;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $key
|
||||||
|
* @param $value
|
||||||
|
* @param $selected
|
||||||
|
* @param $id
|
||||||
|
* @param $class
|
||||||
|
* @param $idx
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, &$idx)
|
function smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, &$idx)
|
||||||
{
|
{
|
||||||
if (!is_array($value)) {
|
if (!is_array($value)) {
|
||||||
@ -170,11 +180,11 @@ function smarty_function_html_options_optoutput($key, $value, $selected, $id, $c
|
|||||||
$_html_class = !empty($class) ? ' class="' . $class . ' option"' : '';
|
$_html_class = !empty($class) ? ' class="' . $class . ' option"' : '';
|
||||||
$_html_id = !empty($id) ? ' id="' . $id . '-' . $idx . '"' : '';
|
$_html_id = !empty($id) ? ' id="' . $id . '-' . $idx . '"' : '';
|
||||||
if (is_object($value)) {
|
if (is_object($value)) {
|
||||||
if (method_exists($value, "__toString")) {
|
if (method_exists($value, '__toString')) {
|
||||||
$value = smarty_function_escape_special_chars((string) $value->__toString());
|
$value = smarty_function_escape_special_chars((string) $value->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: value is an object of class '" . get_class($value) .
|
trigger_error('html_options: value is an object of class \'' . get_class($value) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -193,7 +203,16 @@ function smarty_function_html_options_optoutput($key, $value, $selected, $id, $c
|
|||||||
|
|
||||||
return $_html_result;
|
return $_html_result;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $key
|
||||||
|
* @param $values
|
||||||
|
* @param $selected
|
||||||
|
* @param $id
|
||||||
|
* @param $class
|
||||||
|
* @param $idx
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_function_html_options_optgroup($key, $values, $selected, $id, $class, &$idx)
|
function smarty_function_html_options_optgroup($key, $values, $selected, $id, $class, &$idx)
|
||||||
{
|
{
|
||||||
$optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
|
$optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
|
||||||
|
@ -5,16 +5,15 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFunction
|
* @subpackage PluginsFunction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_radios} function plugin
|
* Smarty {html_radios} function plugin
|
||||||
* File: function.html_radios.php<br>
|
* File: function.html_radios.php
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_radios<br>
|
* Name: html_radios
|
||||||
* Date: 24.Feb.2003<br>
|
* Date: 24.Feb.2003
|
||||||
* Purpose: Prints out a list of radio input types<br>
|
* Purpose: Prints out a list of radio input types
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - name (optional) - string default "radio"
|
* - name (optional) - string default "radio"
|
||||||
* - values (required) - array
|
* - values (required) - array
|
||||||
* - options (required) - associative array
|
* - options (required) - associative array
|
||||||
@ -23,13 +22,13 @@
|
|||||||
* - output (optional) - the output next to each radio button
|
* - output (optional) - the output next to each radio button
|
||||||
* - assign (optional) - assign the output as an array to this variable
|
* - assign (optional) - assign the output as an array to this variable
|
||||||
* - escape (optional) - escape the content (not value), defaults to true
|
* - escape (optional) - escape the content (not value), defaults to true
|
||||||
* </pre>
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* <pre>
|
*
|
||||||
* {html_radios values=$ids output=$names}
|
* {html_radios values=$ids output=$names}
|
||||||
* {html_radios values=$ids name='box' separator='<br>' output=$names}
|
* {html_radios values=$ids name='box' separator='<br>' output=$names}
|
||||||
* {html_radios values=$ids checked=$checked separator='<br>' output=$names}
|
* {html_radios values=$ids checked=$checked separator='<br>' output=$names}
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
|
* @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -42,12 +41,12 @@
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @uses smarty_function_escape_special_chars()
|
* @uses smarty_function_escape_special_chars()
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_radios($params, $template)
|
function smarty_function_html_radios($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
|
||||||
|
|
||||||
$name = 'radio';
|
$name = 'radio';
|
||||||
$values = null;
|
$values = null;
|
||||||
@ -72,11 +71,11 @@ function smarty_function_html_radios($params, $template)
|
|||||||
if (is_array($_val)) {
|
if (is_array($_val)) {
|
||||||
trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
|
trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
|
||||||
} elseif (is_object($_val)) {
|
} elseif (is_object($_val)) {
|
||||||
if (method_exists($_val, "__toString")) {
|
if (method_exists($_val, '__toString')) {
|
||||||
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_radios: selected attribute is an object of class '" . get_class($_val) .
|
trigger_error('html_radios: selected attribute is an object of class \'' . get_class($_val) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$selected = (string) $_val;
|
$selected = (string) $_val;
|
||||||
@ -114,7 +113,7 @@ function smarty_function_html_radios($params, $template)
|
|||||||
case 'readonly':
|
case 'readonly':
|
||||||
if (!empty($params[ 'strict' ])) {
|
if (!empty($params[ 'strict' ])) {
|
||||||
if (!is_scalar($_val)) {
|
if (!is_scalar($_val)) {
|
||||||
trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute",
|
trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute",
|
||||||
E_USER_NOTICE);
|
E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +129,7 @@ function smarty_function_html_radios($params, $template)
|
|||||||
if (!is_array($_val)) {
|
if (!is_array($_val)) {
|
||||||
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -165,18 +164,30 @@ function smarty_function_html_radios($params, $template)
|
|||||||
return implode("\n", $_html_result);
|
return implode("\n", $_html_result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $name
|
||||||
|
* @param $value
|
||||||
|
* @param $output
|
||||||
|
* @param $selected
|
||||||
|
* @param $extra
|
||||||
|
* @param $separator
|
||||||
|
* @param $labels
|
||||||
|
* @param $label_ids
|
||||||
|
* @param $escape
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids,
|
function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids,
|
||||||
$escape)
|
$escape)
|
||||||
{
|
{
|
||||||
$_output = '';
|
$_output = '';
|
||||||
|
|
||||||
if (is_object($value)) {
|
if (is_object($value)) {
|
||||||
if (method_exists($value, "__toString")) {
|
if (method_exists($value, '__toString')) {
|
||||||
$value = (string) $value->__toString();
|
$value = (string) $value->__toString();
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: value is an object of class '" . get_class($value) .
|
trigger_error('html_options: value is an object of class \'' . get_class($value) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -185,11 +196,11 @@ function smarty_function_html_radios_output($name, $value, $output, $selected, $
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_object($output)) {
|
if (is_object($output)) {
|
||||||
if (method_exists($output, "__toString")) {
|
if (method_exists($output, '__toString')) {
|
||||||
$output = (string) $output->__toString();
|
$output = (string) $output->__toString();
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_options: output is an object of class '" . get_class($output) .
|
trigger_error('html_options: output is an object of class \'' . get_class($output) .
|
||||||
"' without __toString() method", E_USER_NOTICE);
|
'\' without __toString() method', E_USER_NOTICE);
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,13 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFunction
|
* @subpackage PluginsFunction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_select_date} plugin
|
* Smarty {html_select_date} plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_select_date<br>
|
* Name: html_select_date
|
||||||
* Purpose: Prints the dropdowns for date selection.
|
* Purpose: Prints the dropdowns for date selection.
|
||||||
* ChangeLog:
|
* ChangeLog:
|
||||||
* <pre>
|
*
|
||||||
* - 1.0 initial release
|
* - 1.0 initial release
|
||||||
* - 1.1 added support for +/- N syntax for begin
|
* - 1.1 added support for +/- N syntax for begin
|
||||||
* and end year values. (Monte)
|
* and end year values. (Monte)
|
||||||
@ -28,7 +27,7 @@
|
|||||||
* of 0000-00-00 dates (cybot, boots)
|
* of 0000-00-00 dates (cybot, boots)
|
||||||
* - 2.0 complete rewrite for performance,
|
* - 2.0 complete rewrite for performance,
|
||||||
* added attributes month_names, *_id
|
* added attributes month_names, *_id
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
|
* @link http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -39,16 +38,15 @@
|
|||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
*
|
*
|
||||||
|
* @param \Smarty_Internal_Template $template
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_select_date($params)
|
function smarty_function_html_select_date($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
|
||||||
if (!is_callable('smarty_make_timestamp')) {
|
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
|
|
||||||
}
|
|
||||||
// generate timestamps used for month names only
|
// generate timestamps used for month names only
|
||||||
static $_month_timestamps = null;
|
static $_month_timestamps = null;
|
||||||
static $_current_year = null;
|
static $_current_year = null;
|
||||||
@ -61,18 +59,18 @@ function smarty_function_html_select_date($params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Default values. */
|
/* Default values. */
|
||||||
$prefix = "Date_";
|
$prefix = 'Date_';
|
||||||
$start_year = null;
|
$start_year = null;
|
||||||
$end_year = null;
|
$end_year = null;
|
||||||
$display_days = true;
|
$display_days = true;
|
||||||
$display_months = true;
|
$display_months = true;
|
||||||
$display_years = true;
|
$display_years = true;
|
||||||
$month_format = "%B";
|
$month_format = '%B';
|
||||||
/* Write months as numbers by default GL */
|
/* Write months as numbers by default GL */
|
||||||
$month_value_format = "%m";
|
$month_value_format = '%m';
|
||||||
$day_format = "%02d";
|
$day_format = '%02d';
|
||||||
/* Write day values using this format MB */
|
/* Write day values using this format MB */
|
||||||
$day_value_format = "%d";
|
$day_value_format = '%d';
|
||||||
$year_as_text = false;
|
$year_as_text = false;
|
||||||
/* Display years in reverse order? Ie. 2000,1999,.... */
|
/* Display years in reverse order? Ie. 2000,1999,.... */
|
||||||
$reverse_years = false;
|
$reverse_years = false;
|
||||||
@ -113,15 +111,17 @@ function smarty_function_html_select_date($params)
|
|||||||
switch ($_key) {
|
switch ($_key) {
|
||||||
case 'time':
|
case 'time':
|
||||||
if (!is_array($_value) && $_value !== null) {
|
if (!is_array($_value) && $_value !== null) {
|
||||||
|
$template->_checkPlugins(array(array('function' => 'smarty_make_timestamp',
|
||||||
|
'file' => SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php')));
|
||||||
$time = smarty_make_timestamp($_value);
|
$time = smarty_make_timestamp($_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'month_names':
|
case 'month_names':
|
||||||
if (is_array($_value) && count($_value) == 12) {
|
if (is_array($_value) && count($_value) === 12) {
|
||||||
$$_key = $_value;
|
$$_key = $_value;
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_select_date: month_names must be an array of 12 strings", E_USER_NOTICE);
|
trigger_error('html_select_date: month_names must be an array of 12 strings', E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ function smarty_function_html_select_date($params)
|
|||||||
if (!is_array($_value)) {
|
if (!is_array($_value)) {
|
||||||
$extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
|
$extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_select_date: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
trigger_error("html_select_date: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -177,7 +177,9 @@ function smarty_function_html_select_date($params)
|
|||||||
if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
|
if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
|
||||||
if (isset($params[ 'time' ][ $prefix . 'Year' ])) {
|
if (isset($params[ 'time' ][ $prefix . 'Year' ])) {
|
||||||
// $_REQUEST[$field_array] given
|
// $_REQUEST[$field_array] given
|
||||||
foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
|
foreach (array('Y' => 'Year',
|
||||||
|
'm' => 'Month',
|
||||||
|
'd' => 'Day') as $_elementKey => $_elementName) {
|
||||||
$_variableName = '_' . strtolower($_elementName);
|
$_variableName = '_' . strtolower($_elementName);
|
||||||
$$_variableName =
|
$$_variableName =
|
||||||
isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
|
isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
|
||||||
@ -185,7 +187,9 @@ function smarty_function_html_select_date($params)
|
|||||||
}
|
}
|
||||||
} elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Year' ])) {
|
} elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Year' ])) {
|
||||||
// $_REQUEST given
|
// $_REQUEST given
|
||||||
foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
|
foreach (array('Y' => 'Year',
|
||||||
|
'm' => 'Month',
|
||||||
|
'd' => 'Day') as $_elementKey => $_elementName) {
|
||||||
$_variableName = '_' . strtolower($_elementName);
|
$_variableName = '_' . strtolower($_elementName);
|
||||||
$$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
|
$$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
|
||||||
$params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
|
$params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
|
||||||
@ -206,14 +210,15 @@ function smarty_function_html_select_date($params)
|
|||||||
|
|
||||||
// make syntax "+N" or "-N" work with $start_year and $end_year
|
// make syntax "+N" or "-N" work with $start_year and $end_year
|
||||||
// Note preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match) is slower than trim+substr
|
// Note preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match) is slower than trim+substr
|
||||||
foreach (array('start', 'end') as $key) {
|
foreach (array('start',
|
||||||
|
'end') as $key) {
|
||||||
$key .= '_year';
|
$key .= '_year';
|
||||||
$t = $$key;
|
$t = $$key;
|
||||||
if ($t === null) {
|
if ($t === null) {
|
||||||
$$key = (int) $_current_year;
|
$$key = (int) $_current_year;
|
||||||
} elseif ($t[ 0 ] == '+') {
|
} elseif ($t[ 0 ] === '+') {
|
||||||
$$key = (int) ($_current_year + (int) trim(substr($t, 1)));
|
$$key = (int) ($_current_year + (int) trim(substr($t, 1)));
|
||||||
} elseif ($t[ 0 ] == '-') {
|
} elseif ($t[ 0 ] === '-') {
|
||||||
$$key = (int) ($_current_year - (int) trim(substr($t, 1)));
|
$$key = (int) ($_current_year - (int) trim(substr($t, 1)));
|
||||||
} else {
|
} else {
|
||||||
$$key = (int) $$key;
|
$$key = (int) $$key;
|
||||||
@ -301,8 +306,8 @@ function smarty_function_html_select_date($params)
|
|||||||
for ($i = 1; $i <= 12; $i ++) {
|
for ($i = 1; $i <= 12; $i ++) {
|
||||||
$_val = sprintf('%02d', $i);
|
$_val = sprintf('%02d', $i);
|
||||||
$_text = isset($month_names) ? smarty_function_escape_special_chars($month_names[ $i ]) :
|
$_text = isset($month_names) ? smarty_function_escape_special_chars($month_names[ $i ]) :
|
||||||
($month_format == "%m" ? $_val : strftime($month_format, $_month_timestamps[ $i ]));
|
($month_format === '%m' ? $_val : strftime($month_format, $_month_timestamps[ $i ]));
|
||||||
$_value = $month_value_format == "%m" ? $_val : strftime($month_value_format, $_month_timestamps[ $i ]);
|
$_value = $month_value_format === '%m' ? $_val : strftime($month_value_format, $_month_timestamps[ $i ]);
|
||||||
$_html_months .= '<option value="' . $_value . '"' . ($_val == $_month ? ' selected="selected"' : '') .
|
$_html_months .= '<option value="' . $_value . '"' . ($_val == $_month ? ' selected="selected"' : '') .
|
||||||
'>' . $_text . '</option>' . $option_separator;
|
'>' . $_text . '</option>' . $option_separator;
|
||||||
}
|
}
|
||||||
@ -339,8 +344,8 @@ function smarty_function_html_select_date($params)
|
|||||||
|
|
||||||
for ($i = 1; $i <= 31; $i ++) {
|
for ($i = 1; $i <= 31; $i ++) {
|
||||||
$_val = sprintf('%02d', $i);
|
$_val = sprintf('%02d', $i);
|
||||||
$_text = $day_format == '%02d' ? $_val : sprintf($day_format, $i);
|
$_text = $day_format === '%02d' ? $_val : sprintf($day_format, $i);
|
||||||
$_value = $day_value_format == '%02d' ? $_val : sprintf($day_value_format, $i);
|
$_value = $day_value_format === '%02d' ? $_val : sprintf($day_value_format, $i);
|
||||||
$_html_days .= '<option value="' . $_value . '"' . ($_val == $_day ? ' selected="selected"' : '') . '>' .
|
$_html_days .= '<option value="' . $_value . '"' . ($_val == $_day ? ' selected="selected"' : '') . '>' .
|
||||||
$_text . '</option>' . $option_separator;
|
$_text . '</option>' . $option_separator;
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,10 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFunction
|
* @subpackage PluginsFunction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_select_time} function plugin
|
* Smarty {html_select_time} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_select_time<br>
|
* Name: html_select_time
|
||||||
* Purpose: Prints the dropdowns for time selection
|
* Purpose: Prints the dropdowns for time selection
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
|
* @link http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
|
||||||
@ -19,18 +18,17 @@
|
|||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
*
|
*
|
||||||
|
* @param \Smarty_Internal_Template $template
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @uses smarty_make_timestamp()
|
* @uses smarty_make_timestamp()
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_function_html_select_time($params)
|
function smarty_function_html_select_time($params, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
if (!is_callable('smarty_function_escape_special_chars')) {
|
$template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars',
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
|
'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php')));
|
||||||
}
|
$prefix = 'Time_';
|
||||||
if (!is_callable('smarty_make_timestamp')) {
|
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
|
|
||||||
}
|
|
||||||
$prefix = "Time_";
|
|
||||||
$field_array = null;
|
$field_array = null;
|
||||||
$field_separator = "\n";
|
$field_separator = "\n";
|
||||||
$option_separator = "\n";
|
$option_separator = "\n";
|
||||||
@ -80,6 +78,8 @@ function smarty_function_html_select_time($params)
|
|||||||
switch ($_key) {
|
switch ($_key) {
|
||||||
case 'time':
|
case 'time':
|
||||||
if (!is_array($_value) && $_value !== null) {
|
if (!is_array($_value) && $_value !== null) {
|
||||||
|
$template->_checkPlugins(array(array('function' => 'smarty_make_timestamp',
|
||||||
|
'file' => SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php')));
|
||||||
$time = smarty_make_timestamp($_value);
|
$time = smarty_make_timestamp($_value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -139,7 +139,7 @@ function smarty_function_html_select_time($params)
|
|||||||
if (!is_array($_value)) {
|
if (!is_array($_value)) {
|
||||||
$extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
|
$extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
|
||||||
} else {
|
} else {
|
||||||
trigger_error("html_select_date: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
|
trigger_error("html_select_date: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -148,7 +148,9 @@ function smarty_function_html_select_time($params)
|
|||||||
if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
|
if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
|
||||||
if (isset($params[ 'time' ][ $prefix . 'Hour' ])) {
|
if (isset($params[ 'time' ][ $prefix . 'Hour' ])) {
|
||||||
// $_REQUEST[$field_array] given
|
// $_REQUEST[$field_array] given
|
||||||
foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
|
foreach (array('H' => 'Hour',
|
||||||
|
'i' => 'Minute',
|
||||||
|
's' => 'Second') as $_elementKey => $_elementName) {
|
||||||
$_variableName = '_' . strtolower($_elementName);
|
$_variableName = '_' . strtolower($_elementName);
|
||||||
$$_variableName =
|
$$_variableName =
|
||||||
isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
|
isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
|
||||||
@ -161,7 +163,9 @@ function smarty_function_html_select_time($params)
|
|||||||
list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
|
list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
|
||||||
} elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Hour' ])) {
|
} elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Hour' ])) {
|
||||||
// $_REQUEST given
|
// $_REQUEST given
|
||||||
foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
|
foreach (array('H' => 'Hour',
|
||||||
|
'i' => 'Minute',
|
||||||
|
's' => 'Second') as $_elementKey => $_elementName) {
|
||||||
$_variableName = '_' . strtolower($_elementName);
|
$_variableName = '_' . strtolower($_elementName);
|
||||||
$$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
|
$$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
|
||||||
$params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
|
$params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
|
||||||
@ -216,8 +220,8 @@ function smarty_function_html_select_time($params)
|
|||||||
$end = $use_24_hours ? 23 : 12;
|
$end = $use_24_hours ? 23 : 12;
|
||||||
for ($i = $start; $i <= $end; $i ++) {
|
for ($i = $start; $i <= $end; $i ++) {
|
||||||
$_val = sprintf('%02d', $i);
|
$_val = sprintf('%02d', $i);
|
||||||
$_text = $hour_format == '%02d' ? $_val : sprintf($hour_format, $i);
|
$_text = $hour_format === '%02d' ? $_val : sprintf($hour_format, $i);
|
||||||
$_value = $hour_value_format == '%02d' ? $_val : sprintf($hour_value_format, $i);
|
$_value = $hour_value_format === '%02d' ? $_val : sprintf($hour_value_format, $i);
|
||||||
|
|
||||||
if (!$use_24_hours) {
|
if (!$use_24_hours) {
|
||||||
$_hour12 = $_hour == 0 ? 12 : ($_hour <= 12 ? $_hour : $_hour - 12);
|
$_hour12 = $_hour == 0 ? 12 : ($_hour <= 12 ? $_hour : $_hour - 12);
|
||||||
@ -263,8 +267,8 @@ function smarty_function_html_select_time($params)
|
|||||||
$selected = $_minute !== null ? ($_minute - $_minute % $minute_interval) : null;
|
$selected = $_minute !== null ? ($_minute - $_minute % $minute_interval) : null;
|
||||||
for ($i = 0; $i <= 59; $i += $minute_interval) {
|
for ($i = 0; $i <= 59; $i += $minute_interval) {
|
||||||
$_val = sprintf('%02d', $i);
|
$_val = sprintf('%02d', $i);
|
||||||
$_text = $minute_format == '%02d' ? $_val : sprintf($minute_format, $i);
|
$_text = $minute_format === '%02d' ? $_val : sprintf($minute_format, $i);
|
||||||
$_value = $minute_value_format == '%02d' ? $_val : sprintf($minute_value_format, $i);
|
$_value = $minute_value_format === '%02d' ? $_val : sprintf($minute_value_format, $i);
|
||||||
$_html_minutes .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
|
$_html_minutes .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
|
||||||
'>' . $_text . '</option>' . $option_separator;
|
'>' . $_text . '</option>' . $option_separator;
|
||||||
}
|
}
|
||||||
@ -304,8 +308,8 @@ function smarty_function_html_select_time($params)
|
|||||||
$selected = $_second !== null ? ($_second - $_second % $second_interval) : null;
|
$selected = $_second !== null ? ($_second - $_second % $second_interval) : null;
|
||||||
for ($i = 0; $i <= 59; $i += $second_interval) {
|
for ($i = 0; $i <= 59; $i += $second_interval) {
|
||||||
$_val = sprintf('%02d', $i);
|
$_val = sprintf('%02d', $i);
|
||||||
$_text = $second_format == '%02d' ? $_val : sprintf($second_format, $i);
|
$_text = $second_format === '%02d' ? $_val : sprintf($second_format, $i);
|
||||||
$_value = $second_value_format == '%02d' ? $_val : sprintf($second_value_format, $i);
|
$_value = $second_value_format === '%02d' ? $_val : sprintf($second_value_format, $i);
|
||||||
$_html_seconds .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
|
$_html_seconds .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
|
||||||
'>' . $_text . '</option>' . $option_separator;
|
'>' . $_text . '</option>' . $option_separator;
|
||||||
}
|
}
|
||||||
@ -350,7 +354,10 @@ function smarty_function_html_select_time($params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$_html = '';
|
$_html = '';
|
||||||
foreach (array('_html_hours', '_html_minutes', '_html_seconds', '_html_meridian') as $k) {
|
foreach (array('_html_hours',
|
||||||
|
'_html_minutes',
|
||||||
|
'_html_seconds',
|
||||||
|
'_html_meridian') as $k) {
|
||||||
if (isset($$k)) {
|
if (isset($$k)) {
|
||||||
if ($_html) {
|
if ($_html) {
|
||||||
$_html .= $field_separator;
|
$_html .= $field_separator;
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {html_table} function plugin
|
* Smarty {html_table} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: html_table<br>
|
* Name: html_table
|
||||||
* Date: Feb 17, 2003<br>
|
* Date: Feb 17, 2003
|
||||||
* Purpose: make an html table from an array of data<br>
|
* Purpose: make an html table from an array of data
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - loop - array to loop through
|
* - loop - array to loop through
|
||||||
* - cols - number of columns, comma separated list of column names
|
* - cols - number of columns, comma separated list of column names
|
||||||
* or array of column names
|
* or array of column names
|
||||||
@ -28,13 +28,13 @@
|
|||||||
* - hdir - horizontal direction (default: "right", means left-to-right)
|
* - hdir - horizontal direction (default: "right", means left-to-right)
|
||||||
* - inner - inner loop (default "cols": print $loop line by line,
|
* - inner - inner loop (default "cols": print $loop line by line,
|
||||||
* $loop will be printed column by column otherwise)
|
* $loop will be printed column by column otherwise)
|
||||||
* </pre>
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* <pre>
|
*
|
||||||
* {table loop=$data}
|
* {table loop=$data}
|
||||||
* {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
|
* {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
|
||||||
* {table loop=$data cols="first,second,third" tr_attr=$colors}
|
* {table loop=$data cols="first,second,third" tr_attr=$colors}
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @author Monte Ohrt <monte at ohrt dot com>
|
* @author Monte Ohrt <monte at ohrt dot com>
|
||||||
* @author credit to Messju Mohr <messju at lammfellpuschen dot de>
|
* @author credit to Messju Mohr <messju at lammfellpuschen dot de>
|
||||||
@ -127,7 +127,7 @@ function smarty_function_html_table($params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($cols)) {
|
if (is_array($cols)) {
|
||||||
$cols = ($hdir == 'right') ? $cols : array_reverse($cols);
|
$cols = ($hdir === 'right') ? $cols : array_reverse($cols);
|
||||||
$output .= "<thead><tr>\n";
|
$output .= "<thead><tr>\n";
|
||||||
|
|
||||||
for ($r = 0; $r < $cols_count; $r ++) {
|
for ($r = 0; $r < $cols_count; $r ++) {
|
||||||
@ -141,11 +141,11 @@ function smarty_function_html_table($params)
|
|||||||
$output .= "<tbody>\n";
|
$output .= "<tbody>\n";
|
||||||
for ($r = 0; $r < $rows; $r ++) {
|
for ($r = 0; $r < $rows; $r ++) {
|
||||||
$output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
|
$output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
|
||||||
$rx = ($vdir == 'down') ? $r * $cols_count : ($rows - 1 - $r) * $cols_count;
|
$rx = ($vdir === 'down') ? $r * $cols_count : ($rows - 1 - $r) * $cols_count;
|
||||||
|
|
||||||
for ($c = 0; $c < $cols_count; $c ++) {
|
for ($c = 0; $c < $cols_count; $c ++) {
|
||||||
$x = ($hdir == 'right') ? $rx + $c : $rx + $cols_count - 1 - $c;
|
$x = ($hdir === 'right') ? $rx + $c : $rx + $cols_count - 1 - $c;
|
||||||
if ($inner != 'cols') {
|
if ($inner !== 'cols') {
|
||||||
/* shuffle x to loop over rows*/
|
/* shuffle x to loop over rows*/
|
||||||
$x = floor($x / $cols_count) + ($x % $cols_count) * $rows;
|
$x = floor($x / $cols_count) + ($x % $cols_count) * $rows;
|
||||||
}
|
}
|
||||||
@ -163,7 +163,13 @@ function smarty_function_html_table($params)
|
|||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $name
|
||||||
|
* @param $var
|
||||||
|
* @param $no
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_function_html_table_cycle($name, $var, $no)
|
function smarty_function_html_table_cycle($name, $var, $no)
|
||||||
{
|
{
|
||||||
if (!is_array($var)) {
|
if (!is_array($var)) {
|
||||||
|
@ -8,35 +8,35 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {mailto} function plugin
|
* Smarty {mailto} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: mailto<br>
|
* Name: mailto
|
||||||
* Date: May 21, 2002
|
* Date: May 21, 2002
|
||||||
* Purpose: automate mailto address link creation, and optionally encode them.<br>
|
* Purpose: automate mailto address link creation, and optionally encode them.
|
||||||
* Params:
|
* Params:
|
||||||
* <pre>
|
*
|
||||||
* - address - (required) - e-mail address
|
* - address - (required) - e-mail address
|
||||||
* - text - (optional) - text to display, default is address
|
* - text - (optional) - text to display, default is address
|
||||||
* - encode - (optional) - can be one of:
|
* - encode - (optional) - can be one of:
|
||||||
* * none : no encoding (default)
|
* * none : no encoding (default)
|
||||||
* * javascript : encode with javascript
|
* * javascript : encode with javascript
|
||||||
* * javascript_charcode : encode with javascript charcode
|
* * javascript_charcode : encode with javascript charcode
|
||||||
* * hex : encode with hexidecimal (no javascript)
|
* * hex : encode with hexadecimal (no javascript)
|
||||||
* - cc - (optional) - address(es) to carbon copy
|
* - cc - (optional) - address(es) to carbon copy
|
||||||
* - bcc - (optional) - address(es) to blind carbon copy
|
* - bcc - (optional) - address(es) to blind carbon copy
|
||||||
* - subject - (optional) - e-mail subject
|
* - subject - (optional) - e-mail subject
|
||||||
* - newsgroups - (optional) - newsgroup(s) to post to
|
* - newsgroups - (optional) - newsgroup(s) to post to
|
||||||
* - followupto - (optional) - address(es) to follow up to
|
* - followupto - (optional) - address(es) to follow up to
|
||||||
* - extra - (optional) - extra tags for the href link
|
* - extra - (optional) - extra tags for the href link
|
||||||
* </pre>
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* <pre>
|
*
|
||||||
* {mailto address="me@domain.com"}
|
* {mailto address="me@domain.com"}
|
||||||
* {mailto address="me@domain.com" encode="javascript"}
|
* {mailto address="me@domain.com" encode="javascript"}
|
||||||
* {mailto address="me@domain.com" encode="hex"}
|
* {mailto address="me@domain.com" encode="hex"}
|
||||||
* {mailto address="me@domain.com" subject="Hello to you!"}
|
* {mailto address="me@domain.com" subject="Hello to you!"}
|
||||||
* {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
|
* {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
|
||||||
* {mailto address="me@domain.com" extra='class="mailto"'}
|
* {mailto address="me@domain.com" extra='class="mailto"'}
|
||||||
* </pre>
|
*
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
|
* @link http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
|
||||||
* (Smarty online manual)
|
* (Smarty online manual)
|
||||||
@ -103,7 +103,7 @@ function smarty_function_mailto($params)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// FIXME: (rodneyrehm) document.write() excues me what? 1998 has passed!
|
// FIXME: (rodneyrehm) document.write() excues me what? 1998 has passed!
|
||||||
if ($encode == 'javascript') {
|
if ($encode === 'javascript') {
|
||||||
$string = 'document.write(\'<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>\');';
|
$string = 'document.write(\'<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>\');';
|
||||||
|
|
||||||
$js_encode = '';
|
$js_encode = '';
|
||||||
@ -112,7 +112,7 @@ function smarty_function_mailto($params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return '<script type="text/javascript">eval(unescape(\'' . $js_encode . '\'))</script>';
|
return '<script type="text/javascript">eval(unescape(\'' . $js_encode . '\'))</script>';
|
||||||
} elseif ($encode == 'javascript_charcode') {
|
} elseif ($encode === 'javascript_charcode') {
|
||||||
$string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
|
$string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
|
||||||
|
|
||||||
for ($x = 0, $y = strlen($string); $x < $y; $x ++) {
|
for ($x = 0, $y = strlen($string); $x < $y; $x ++) {
|
||||||
@ -123,7 +123,7 @@ function smarty_function_mailto($params)
|
|||||||
implode(',', $ord) . "))" . "}\n" . "</script>\n";
|
implode(',', $ord) . "))" . "}\n" . "</script>\n";
|
||||||
|
|
||||||
return $_ret;
|
return $_ret;
|
||||||
} elseif ($encode == 'hex') {
|
} elseif ($encode === 'hex') {
|
||||||
preg_match('!^(.*)(\?.*)$!', $address, $match);
|
preg_match('!^(.*)(\?.*)$!', $address, $match);
|
||||||
if (!empty($match[ 2 ])) {
|
if (!empty($match[ 2 ])) {
|
||||||
trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.", E_USER_WARNING);
|
trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.", E_USER_WARNING);
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty {math} function plugin
|
* Smarty {math} function plugin
|
||||||
* Type: function<br>
|
* Type: function
|
||||||
* Name: math<br>
|
* Name: math
|
||||||
* Purpose: handle math computations in template
|
* Purpose: handle math computations in template
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.function.math.php {math}
|
* @link http://www.smarty.net/manual/en/language.function.math.php {math}
|
||||||
@ -38,7 +38,7 @@ function smarty_function_math($params, $template)
|
|||||||
$equation = $params[ 'equation' ];
|
$equation = $params[ 'equation' ];
|
||||||
|
|
||||||
// make sure parenthesis are balanced
|
// make sure parenthesis are balanced
|
||||||
if (substr_count($equation, "(") != substr_count($equation, ")")) {
|
if (substr_count($equation, '(') !== substr_count($equation, ')')) {
|
||||||
trigger_error("math: unbalanced parenthesis", E_USER_WARNING);
|
trigger_error("math: unbalanced parenthesis", E_USER_WARNING);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -59,9 +59,9 @@ function smarty_function_math($params, $template)
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($params as $key => $val) {
|
foreach ($params as $key => $val) {
|
||||||
if ($key != "equation" && $key != "format" && $key != "assign") {
|
if ($key !== 'equation' && $key !== 'format' && $key !== 'assign') {
|
||||||
// make sure value is not empty
|
// make sure value is not empty
|
||||||
if (strlen($val) == 0) {
|
if (strlen($val) === 0) {
|
||||||
trigger_error("math: parameter '{$key}' is empty", E_USER_WARNING);
|
trigger_error("math: parameter '{$key}' is empty", E_USER_WARNING);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -86,7 +86,7 @@ function smarty_function_math($params, $template)
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($params as $key => $val) {
|
foreach ($params as $key => $val) {
|
||||||
if ($key != "equation" && $key != "format" && $key != "assign") {
|
if ($key !== 'equation' && $key !== 'format' && $key !== 'assign') {
|
||||||
$equation = preg_replace("/\b$key\b/", " \$params['$key'] ", $equation);
|
$equation = preg_replace("/\b$key\b/", " \$params['$key'] ", $equation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty capitalize modifier plugin
|
* Smarty capitalize modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: capitalize<br>
|
* Name: capitalize
|
||||||
* Purpose: capitalize words in the string
|
* Purpose: capitalize words in the string
|
||||||
* {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
|
* {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
|
||||||
*
|
*
|
||||||
@ -80,21 +80,38 @@ function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = fals
|
|||||||
*
|
*
|
||||||
* @author Kyle Renfrow
|
* @author Kyle Renfrow
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @param $matches
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_mod_cap_mbconvert_cb($matches)
|
function smarty_mod_cap_mbconvert_cb($matches)
|
||||||
{
|
{
|
||||||
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 2 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
|
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 2 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $matches
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_mod_cap_mbconvert2_cb($matches)
|
function smarty_mod_cap_mbconvert2_cb($matches)
|
||||||
{
|
{
|
||||||
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 3 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
|
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 3 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $matches
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_mod_cap_ucfirst_cb($matches)
|
function smarty_mod_cap_ucfirst_cb($matches)
|
||||||
{
|
{
|
||||||
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 2 ]));
|
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 2 ]));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param $matches
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function smarty_mod_cap_ucfirst2_cb($matches)
|
function smarty_mod_cap_ucfirst2_cb($matches)
|
||||||
{
|
{
|
||||||
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 3 ]));
|
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 3 ]));
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty date_format modifier plugin
|
* Smarty date_format modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: date_format<br>
|
* Name: date_format
|
||||||
* Purpose: format datestamps via strftime<br>
|
* Purpose: format datestamps via strftime
|
||||||
* Input:<br>
|
* Input:
|
||||||
* - string: input date string
|
* - string: input date string
|
||||||
* - format: strftime format for output
|
* - format: strftime format for output
|
||||||
* - default_date: default date if $string is empty
|
* - default_date: default date if $string is empty
|
||||||
@ -35,20 +35,36 @@ function smarty_modifier_date_format($string, $format = null, $default_date = ''
|
|||||||
/**
|
/**
|
||||||
* require_once the {@link shared.make_timestamp.php} plugin
|
* require_once the {@link shared.make_timestamp.php} plugin
|
||||||
*/
|
*/
|
||||||
|
static $is_loaded = false;
|
||||||
|
if (!$is_loaded) {
|
||||||
if (!is_callable('smarty_make_timestamp')) {
|
if (!is_callable('smarty_make_timestamp')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
|
||||||
}
|
}
|
||||||
if ($string != '' && $string != '0000-00-00' && $string != '0000-00-00 00:00:00') {
|
$is_loaded = true;
|
||||||
|
}
|
||||||
|
if ($string !== '' && $string !== '0000-00-00' && $string !== '0000-00-00 00:00:00') {
|
||||||
$timestamp = smarty_make_timestamp($string);
|
$timestamp = smarty_make_timestamp($string);
|
||||||
} elseif ($default_date != '') {
|
} elseif ($default_date !== '') {
|
||||||
$timestamp = smarty_make_timestamp($default_date);
|
$timestamp = smarty_make_timestamp($default_date);
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ($formatter == 'strftime' || ($formatter == 'auto' && strpos($format, '%') !== false)) {
|
if ($formatter === 'strftime' || ($formatter === 'auto' && strpos($format, '%') !== false)) {
|
||||||
if (Smarty::$_IS_WINDOWS) {
|
if (Smarty::$_IS_WINDOWS) {
|
||||||
$_win_from = array('%D', '%h', '%n', '%r', '%R', '%t', '%T');
|
$_win_from = array('%D',
|
||||||
$_win_to = array('%m/%d/%y', '%b', "\n", '%I:%M:%S %p', '%H:%M', "\t", '%H:%M:%S');
|
'%h',
|
||||||
|
'%n',
|
||||||
|
'%r',
|
||||||
|
'%R',
|
||||||
|
'%t',
|
||||||
|
'%T');
|
||||||
|
$_win_to = array('%m/%d/%y',
|
||||||
|
'%b',
|
||||||
|
"\n",
|
||||||
|
'%I:%M:%S %p',
|
||||||
|
'%H:%M',
|
||||||
|
"\t",
|
||||||
|
'%H:%M:%S');
|
||||||
if (strpos($format, '%e') !== false) {
|
if (strpos($format, '%e') !== false) {
|
||||||
$_win_from[] = '%e';
|
$_win_from[] = '%e';
|
||||||
$_win_to[] = sprintf('%\' 2d', date('j', $timestamp));
|
$_win_to[] = sprintf('%\' 2d', date('j', $timestamp));
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty debug_print_var modifier plugin
|
* Smarty debug_print_var modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: debug_print_var<br>
|
* Name: debug_print_var
|
||||||
* Purpose: formats variable contents for display in the console
|
* Purpose: formats variable contents for display in the console
|
||||||
*
|
*
|
||||||
* @author Monte Ohrt <monte at ohrt dot com>
|
* @author Monte Ohrt <monte at ohrt dot com>
|
||||||
@ -28,7 +28,7 @@ function smarty_modifier_debug_print_var($var, $max = 10, $length = 40, $depth =
|
|||||||
switch (gettype($var)) {
|
switch (gettype($var)) {
|
||||||
case 'array' :
|
case 'array' :
|
||||||
$results = '<b>Array (' . count($var) . ')</b>';
|
$results = '<b>Array (' . count($var) . ')</b>';
|
||||||
if ($depth == $max) {
|
if ($depth === $max) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
foreach ($var as $curr_key => $curr_val) {
|
foreach ($var as $curr_key => $curr_val) {
|
||||||
@ -46,7 +46,7 @@ function smarty_modifier_debug_print_var($var, $max = 10, $length = 40, $depth =
|
|||||||
$results .= ' called recursive';
|
$results .= ' called recursive';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ($depth == $max) {
|
if ($depth === $max) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$objects[] = $var;
|
$objects[] = $var;
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty escape modifier plugin
|
* Smarty escape modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: escape<br>
|
* Name: escape
|
||||||
* Purpose: escape string for output
|
* Purpose: escape string for output
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/docs/en/language.modifier.escape
|
* @link http://www.smarty.net/docs/en/language.modifier.escape
|
||||||
@ -25,6 +25,8 @@
|
|||||||
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)
|
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)
|
||||||
{
|
{
|
||||||
static $_double_encode = null;
|
static $_double_encode = null;
|
||||||
|
static $is_loaded_1 = false;
|
||||||
|
static $is_loaded_2 = false;
|
||||||
if ($_double_encode === null) {
|
if ($_double_encode === null) {
|
||||||
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
|
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
|
||||||
}
|
}
|
||||||
@ -46,7 +48,9 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
// php <5.2.3 - prevent double encoding
|
// php <5.2.3 - prevent double encoding
|
||||||
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
||||||
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
|
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
|
||||||
$string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
|
$string = str_replace(array('%%%SMARTY_START%%%',
|
||||||
|
'%%%SMARTY_END%%%'), array('&',
|
||||||
|
';'), $string);
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
@ -67,7 +71,9 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
||||||
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
|
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
|
||||||
$string =
|
$string =
|
||||||
str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
|
str_replace(array('%%%SMARTY_START%%%',
|
||||||
|
'%%%SMARTY_END%%%'), array('&',
|
||||||
|
';'), $string);
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
@ -86,7 +92,9 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
} else {
|
} else {
|
||||||
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
|
||||||
$string = htmlentities($string, ENT_QUOTES, $char_set);
|
$string = htmlentities($string, ENT_QUOTES, $char_set);
|
||||||
$string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
|
$string = str_replace(array('%%%SMARTY_START%%%',
|
||||||
|
'%%%SMARTY_END%%%'), array('&',
|
||||||
|
';'), $string);
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
@ -116,9 +124,12 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
case 'hexentity':
|
case 'hexentity':
|
||||||
$return = '';
|
$return = '';
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
if (!$is_loaded_1) {
|
||||||
if (!is_callable('smarty_mb_to_unicode')) {
|
if (!is_callable('smarty_mb_to_unicode')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
||||||
}
|
}
|
||||||
|
$is_loaded_1 = true;
|
||||||
|
}
|
||||||
$return = '';
|
$return = '';
|
||||||
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
||||||
$return .= '&#x' . strtoupper(dechex($unicode)) . ';';
|
$return .= '&#x' . strtoupper(dechex($unicode)) . ';';
|
||||||
@ -137,9 +148,12 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
case 'decentity':
|
case 'decentity':
|
||||||
$return = '';
|
$return = '';
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
if (!$is_loaded_1) {
|
||||||
if (!is_callable('smarty_mb_to_unicode')) {
|
if (!is_callable('smarty_mb_to_unicode')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
||||||
}
|
}
|
||||||
|
$is_loaded_1 = true;
|
||||||
|
}
|
||||||
$return = '';
|
$return = '';
|
||||||
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
||||||
$return .= '&#' . $unicode . ';';
|
$return .= '&#' . $unicode . ';';
|
||||||
@ -157,26 +171,40 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
|
|||||||
|
|
||||||
case 'javascript':
|
case 'javascript':
|
||||||
// escape quotes and backslashes, newlines, etc.
|
// escape quotes and backslashes, newlines, etc.
|
||||||
return strtr($string, array('\\' => '\\\\', "'" => "\\'", '"' => '\\"', "\r" => '\\r', "\n" => '\\n',
|
return strtr($string, array('\\' => '\\\\',
|
||||||
|
"'" => "\\'",
|
||||||
|
'"' => '\\"',
|
||||||
|
"\r" => '\\r',
|
||||||
|
"\n" => '\\n',
|
||||||
'</' => '<\/'));
|
'</' => '<\/'));
|
||||||
|
|
||||||
case 'mail':
|
case 'mail':
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
if (!$is_loaded_2) {
|
||||||
if (!is_callable('smarty_mb_str_replace')) {
|
if (!is_callable('smarty_mb_str_replace')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
|
||||||
}
|
}
|
||||||
return smarty_mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string);
|
$is_loaded_2 = true;
|
||||||
|
}
|
||||||
|
return smarty_mb_str_replace(array('@',
|
||||||
|
'.'), array(' [AT] ',
|
||||||
|
' [DOT] '), $string);
|
||||||
}
|
}
|
||||||
// no MBString fallback
|
// no MBString fallback
|
||||||
return str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string);
|
return str_replace(array('@',
|
||||||
|
'.'), array(' [AT] ',
|
||||||
|
' [DOT] '), $string);
|
||||||
|
|
||||||
case 'nonstd':
|
case 'nonstd':
|
||||||
// escape non-standard chars, such as ms document quotes
|
// escape non-standard chars, such as ms document quotes
|
||||||
$return = '';
|
$return = '';
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
if (!$is_loaded_1) {
|
||||||
if (!is_callable('smarty_mb_to_unicode')) {
|
if (!is_callable('smarty_mb_to_unicode')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
|
||||||
}
|
}
|
||||||
|
$is_loaded_1 = true;
|
||||||
|
}
|
||||||
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
|
||||||
if ($unicode >= 126) {
|
if ($unicode >= 126) {
|
||||||
$return .= '&#' . $unicode . ';';
|
$return .= '&#' . $unicode . ';';
|
||||||
|
75
vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php
vendored
Normal file
75
vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php
vendored
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Smarty plugin
|
||||||
|
*
|
||||||
|
* @package Smarty
|
||||||
|
* @subpackage PluginsModifier
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Smarty wordwrap modifier plugin
|
||||||
|
* Type: modifier
|
||||||
|
* Name: mb_wordwrap
|
||||||
|
* Purpose: Wrap a string to a given number of characters
|
||||||
|
*
|
||||||
|
|
||||||
|
* @link http://php.net/manual/en/function.wordwrap.php for similarity
|
||||||
|
*
|
||||||
|
* @param string $str the string to wrap
|
||||||
|
* @param int $width the width of the output
|
||||||
|
* @param string $break the character used to break the line
|
||||||
|
* @param boolean $cut ignored parameter, just for the sake of
|
||||||
|
*
|
||||||
|
* @return string wrapped string
|
||||||
|
* @author Rodney Rehm
|
||||||
|
*/
|
||||||
|
function smarty_modifier_mb_wordwrap($str, $width = 75, $break = "\n", $cut = false)
|
||||||
|
{
|
||||||
|
// break words into tokens using white space as a delimiter
|
||||||
|
$tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
|
||||||
|
$length = 0;
|
||||||
|
$t = '';
|
||||||
|
$_previous = false;
|
||||||
|
$_space = false;
|
||||||
|
|
||||||
|
foreach ($tokens as $_token) {
|
||||||
|
$token_length = mb_strlen($_token, Smarty::$_CHARSET);
|
||||||
|
$_tokens = array($_token);
|
||||||
|
if ($token_length > $width) {
|
||||||
|
if ($cut) {
|
||||||
|
$_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER,
|
||||||
|
$_token,
|
||||||
|
-1,
|
||||||
|
PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($_tokens as $token) {
|
||||||
|
$_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token);
|
||||||
|
$token_length = mb_strlen($token, Smarty::$_CHARSET);
|
||||||
|
$length += $token_length;
|
||||||
|
|
||||||
|
if ($length > $width) {
|
||||||
|
// remove space before inserted break
|
||||||
|
if ($_previous) {
|
||||||
|
$t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$_space) {
|
||||||
|
// add the break before the token
|
||||||
|
if (!empty($t)) {
|
||||||
|
$t .= $break;
|
||||||
|
}
|
||||||
|
$length = $token_length;
|
||||||
|
}
|
||||||
|
} else if ($token === "\n") {
|
||||||
|
// hard break must reset counters
|
||||||
|
$length = 0;
|
||||||
|
}
|
||||||
|
$_previous = $_space;
|
||||||
|
// add the token
|
||||||
|
$t .= $token;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $t;
|
||||||
|
}
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty regex_replace modifier plugin
|
* Smarty regex_replace modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: regex_replace<br>
|
* Name: regex_replace
|
||||||
* Purpose: regular expression search/replace
|
* Purpose: regular expression search/replace
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
|
* @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty replace modifier plugin
|
* Smarty replace modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: replace<br>
|
* Name: replace
|
||||||
* Purpose: simple search/replace
|
* Purpose: simple search/replace
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
|
* @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
|
||||||
@ -24,9 +24,13 @@
|
|||||||
*/
|
*/
|
||||||
function smarty_modifier_replace($string, $search, $replace)
|
function smarty_modifier_replace($string, $search, $replace)
|
||||||
{
|
{
|
||||||
|
static $is_loaded = false;
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
if (!$is_loaded) {
|
||||||
if (!is_callable('smarty_mb_str_replace')) {
|
if (!is_callable('smarty_mb_str_replace')) {
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
|
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
|
||||||
|
}
|
||||||
|
$is_loaded = true;
|
||||||
}
|
}
|
||||||
return smarty_mb_str_replace($search, $replace, $string);
|
return smarty_mb_str_replace($search, $replace, $string);
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty spacify modifier plugin
|
* Smarty spacify modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: spacify<br>
|
* Name: spacify
|
||||||
* Purpose: add spaces between characters in a string
|
* Purpose: add spaces between characters in a string
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
|
* @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty truncate modifier plugin
|
* Smarty truncate modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: truncate<br>
|
* Name: truncate
|
||||||
* Purpose: Truncate a string to a certain length if necessary,
|
* Purpose: Truncate a string to a certain length if necessary,
|
||||||
* optionally splitting in the middle of a word, and
|
* optionally splitting in the middle of a word, and
|
||||||
* appending the $etc string or inserting $etc into the middle.
|
* appending the $etc string or inserting $etc into the middle.
|
||||||
@ -27,7 +27,7 @@
|
|||||||
*/
|
*/
|
||||||
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
|
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
|
||||||
{
|
{
|
||||||
if ($length == 0) {
|
if ($length === 0) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty cat modifier plugin
|
* Smarty cat modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: cat<br>
|
* Name: cat
|
||||||
* Date: Feb 24, 2003<br>
|
* Date: Feb 24, 2003
|
||||||
* Purpose: catenate a value to a variable<br>
|
* Purpose: catenate a value to a variable
|
||||||
* Input: string to catenate<br>
|
* Input: string to catenate
|
||||||
* Example: {$var|cat:"foo"}
|
* Example: {$var|cat:"foo"}
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
|
* @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty count_characters modifier plugin
|
* Smarty count_characters modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: count_characteres<br>
|
* Name: count_characters
|
||||||
* Purpose: count the number of characters in a text
|
* Purpose: count the number of characters in a text
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
|
||||||
@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
function smarty_modifiercompiler_count_characters($params)
|
function smarty_modifiercompiler_count_characters($params)
|
||||||
{
|
{
|
||||||
if (!isset($params[ 1 ]) || $params[ 1 ] != 'true') {
|
if (!isset($params[ 1 ]) || $params[ 1 ] !== 'true') {
|
||||||
return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[ 0 ] . ', $tmp)';
|
return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[ 0 ] . ', $tmp)';
|
||||||
}
|
}
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty count_paragraphs modifier plugin
|
* Smarty count_paragraphs modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: count_paragraphs<br>
|
* Name: count_paragraphs
|
||||||
* Purpose: count the number of paragraphs in a text
|
* Purpose: count the number of paragraphs in a text
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
|
* @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty count_sentences modifier plugin
|
* Smarty count_sentences modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: count_sentences
|
* Name: count_sentences
|
||||||
* Purpose: count the number of sentences in a text
|
* Purpose: count the number of sentences in a text
|
||||||
*
|
*
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty count_words modifier plugin
|
* Smarty count_words modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: count_words<br>
|
* Name: count_words
|
||||||
* Purpose: count the number of words in a text
|
* Purpose: count the number of words in a text
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty default modifier plugin
|
* Smarty default modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: default<br>
|
* Name: default
|
||||||
* Purpose: designate default value for empty variables
|
* Purpose: designate default value for empty variables
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
|
||||||
|
@ -5,27 +5,27 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsModifierCompiler
|
* @subpackage PluginsModifierCompiler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty escape modifier plugin
|
* Smarty escape modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: escape<br>
|
* Name: escape
|
||||||
* Purpose: escape string for output
|
* Purpose: escape string for output
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
|
* @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
|
||||||
* @author Rodney Rehm
|
* @author Rodney Rehm
|
||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
* @param $compiler
|
* @param Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
*
|
*
|
||||||
* @return string with compiled code
|
* @return string with compiled code
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_modifiercompiler_escape($params, $compiler)
|
function smarty_modifiercompiler_escape($params, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
static $_double_encode = null;
|
static $_double_encode = null;
|
||||||
if (!is_callable('smarty_literal_compiler_param')) {
|
static $is_loaded = false;
|
||||||
require_once(SMARTY_PLUGINS_DIR . 'shared.literal_compiler_param.php');
|
$compiler->template->_checkPlugins(array(array('function' => 'smarty_literal_compiler_param',
|
||||||
}
|
'file' => SMARTY_PLUGINS_DIR . 'shared.literal_compiler_param.php')));
|
||||||
if ($_double_encode === null) {
|
if ($_double_encode === null) {
|
||||||
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
|
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
|
||||||
}
|
}
|
||||||
@ -100,14 +100,14 @@ function smarty_modifiercompiler_escape($params, $compiler)
|
|||||||
|
|
||||||
// could not optimize |escape call, so fallback to regular plugin
|
// could not optimize |escape call, so fallback to regular plugin
|
||||||
if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
|
if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'file' ] =
|
$compiler->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'file' ] =
|
||||||
SMARTY_PLUGINS_DIR . 'modifier.escape.php';
|
SMARTY_PLUGINS_DIR . 'modifier.escape.php';
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'function' ] =
|
$compiler->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'function' ] =
|
||||||
'smarty_modifier_escape';
|
'smarty_modifier_escape';
|
||||||
} else {
|
} else {
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'file' ] =
|
$compiler->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'file' ] =
|
||||||
SMARTY_PLUGINS_DIR . 'modifier.escape.php';
|
SMARTY_PLUGINS_DIR . 'modifier.escape.php';
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'function' ] =
|
$compiler->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'function' ] =
|
||||||
'smarty_modifier_escape';
|
'smarty_modifier_escape';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty from_charset modifier plugin
|
* Smarty from_charset modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: from_charset<br>
|
* Name: from_charset
|
||||||
* Purpose: convert character encoding from $charset to internal encoding
|
* Purpose: convert character encoding from $charset to internal encoding
|
||||||
*
|
*
|
||||||
* @author Rodney Rehm
|
* @author Rodney Rehm
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty indent modifier plugin
|
* Smarty indent modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: indent<br>
|
* Name: indent
|
||||||
* Purpose: indent lines of text
|
* Purpose: indent lines of text
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty lower modifier plugin
|
* Smarty lower modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: lower<br>
|
* Name: lower
|
||||||
* Purpose: convert string to lowercase
|
* Purpose: convert string to lowercase
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty noprint modifier plugin
|
* Smarty noprint modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: noprint<br>
|
* Name: noprint
|
||||||
* Purpose: return an empty string
|
* Purpose: return an empty string
|
||||||
*
|
*
|
||||||
* @author Uwe Tews
|
* @author Uwe Tews
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty string_format modifier plugin
|
* Smarty string_format modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: string_format<br>
|
* Name: string_format
|
||||||
* Purpose: format strings via sprintf
|
* Purpose: format strings via sprintf
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty strip modifier plugin
|
* Smarty strip modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: strip<br>
|
* Name: strip
|
||||||
* Purpose: Replace all repeated spaces, newlines, tabs
|
* Purpose: Replace all repeated spaces, newlines, tabs
|
||||||
* with a single space or supplied replacement string.<br>
|
* with a single space or supplied replacement string.
|
||||||
* Example: {$var|strip} {$var|strip:" "}<br>
|
* Example: {$var|strip} {$var|strip:" "}
|
||||||
* Date: September 25th, 2002
|
* Date: September 25th, 2002
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
|
* @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty strip_tags modifier plugin
|
* Smarty strip_tags modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: strip_tags<br>
|
* Name: strip_tags
|
||||||
* Purpose: strip html tags from text
|
* Purpose: strip html tags from text
|
||||||
*
|
*
|
||||||
* @link http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl strip_tags (Smarty online manual)
|
* @link http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl strip_tags (Smarty online manual)
|
||||||
@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
function smarty_modifiercompiler_strip_tags($params)
|
function smarty_modifiercompiler_strip_tags($params)
|
||||||
{
|
{
|
||||||
if (!isset($params[ 1 ]) || $params[ 1 ] === true || trim($params[ 1 ], '"') == 'true') {
|
if (!isset($params[ 1 ]) || $params[ 1 ] === true || trim($params[ 1 ], '"') === 'true') {
|
||||||
return "preg_replace('!<[^>]*?>!', ' ', {$params[0]})";
|
return "preg_replace('!<[^>]*?>!', ' ', {$params[0]})";
|
||||||
} else {
|
} else {
|
||||||
return 'strip_tags(' . $params[ 0 ] . ')';
|
return 'strip_tags(' . $params[ 0 ] . ')';
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty to_charset modifier plugin
|
* Smarty to_charset modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: to_charset<br>
|
* Name: to_charset
|
||||||
* Purpose: convert character encoding from internal encoding to $charset
|
* Purpose: convert character encoding from internal encoding to $charset
|
||||||
*
|
*
|
||||||
* @author Rodney Rehm
|
* @author Rodney Rehm
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty unescape modifier plugin
|
* Smarty unescape modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: unescape<br>
|
* Name: unescape
|
||||||
* Purpose: unescape html entities
|
* Purpose: unescape html entities
|
||||||
*
|
*
|
||||||
* @author Rodney Rehm
|
* @author Rodney Rehm
|
||||||
@ -26,7 +26,7 @@ function smarty_modifiercompiler_unescape($params)
|
|||||||
if (!isset($params[ 2 ])) {
|
if (!isset($params[ 2 ])) {
|
||||||
$params[ 2 ] = '\'' . addslashes(Smarty::$_CHARSET) . '\'';
|
$params[ 2 ] = '\'' . addslashes(Smarty::$_CHARSET) . '\'';
|
||||||
} else {
|
} else {
|
||||||
$params[ 2 ] = "'" . $params[ 2 ] . "'";
|
$params[ 2 ] = "'{$params[ 2 ]}'";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (trim($params[ 1 ], '"\'')) {
|
switch (trim($params[ 1 ], '"\'')) {
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty upper modifier plugin
|
* Smarty upper modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: lower<br>
|
* Name: lower
|
||||||
* Purpose: convert string to uppercase
|
* Purpose: convert string to uppercase
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
|
* @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
|
||||||
|
@ -5,22 +5,22 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsModifierCompiler
|
* @subpackage PluginsModifierCompiler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty wordwrap modifier plugin
|
* Smarty wordwrap modifier plugin
|
||||||
* Type: modifier<br>
|
* Type: modifier
|
||||||
* Name: wordwrap<br>
|
* Name: wordwrap
|
||||||
* Purpose: wrap a string of text at a given length
|
* Purpose: wrap a string of text at a given length
|
||||||
*
|
*
|
||||||
* @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
|
* @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
|
||||||
* @author Uwe Tews
|
* @author Uwe Tews
|
||||||
*
|
*
|
||||||
* @param array $params parameters
|
* @param array $params parameters
|
||||||
* @param $compiler
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
*
|
*
|
||||||
* @return string with compiled code
|
* @return string with compiled code
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
function smarty_modifiercompiler_wordwrap($params, $compiler)
|
function smarty_modifiercompiler_wordwrap($params, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
if (!isset($params[ 1 ])) {
|
if (!isset($params[ 1 ])) {
|
||||||
$params[ 1 ] = 80;
|
$params[ 1 ] = 80;
|
||||||
@ -33,19 +33,7 @@ function smarty_modifiercompiler_wordwrap($params, $compiler)
|
|||||||
}
|
}
|
||||||
$function = 'wordwrap';
|
$function = 'wordwrap';
|
||||||
if (Smarty::$_MBSTRING) {
|
if (Smarty::$_MBSTRING) {
|
||||||
if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
|
$function = $compiler->getPlugin('mb_wordwrap','modifier');
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ 'wordwrap' ][ 'modifier' ][ 'file' ] =
|
|
||||||
SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
|
|
||||||
$compiler->template->required_plugins[ 'nocache' ][ 'wordwrap' ][ 'modifier' ][ 'function' ] =
|
|
||||||
'smarty_mb_wordwrap';
|
|
||||||
} else {
|
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'wordwrap' ][ 'modifier' ][ 'file' ] =
|
|
||||||
SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
|
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'wordwrap' ][ 'modifier' ][ 'function' ] =
|
|
||||||
'smarty_mb_wordwrap';
|
|
||||||
}
|
}
|
||||||
$function = 'smarty_mb_wordwrap';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $function . '(' . $params[ 0 ] . ',' . $params[ 1 ] . ',' . $params[ 2 ] . ',' . $params[ 3 ] . ')';
|
return $function . '(' . $params[ 0 ] . ',' . $params[ 1 ] . ',' . $params[ 2 ] . ',' . $params[ 3 ] . ')';
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ function smarty_outputfilter_trimwhitespace($source)
|
|||||||
$_offset = 0;
|
$_offset = 0;
|
||||||
|
|
||||||
// Unify Line-Breaks to \n
|
// Unify Line-Breaks to \n
|
||||||
$source = preg_replace("/\015\012|\015|\012/", "\n", $source);
|
$source = preg_replace('/\015\012|\015|\012/', "\n", $source);
|
||||||
|
|
||||||
// capture Internet Explorer and KnockoutJS Conditional Comments
|
// capture Internet Explorer and KnockoutJS Conditional Comments
|
||||||
if (preg_match_all('#<!--((\[[^\]]+\]>.*?<!\[[^\]]+\])|(\s*/?ko\s+.+))-->#is', $source, $matches,
|
if (preg_match_all('#<!--((\[[^\]]+\]>.*?<!\[[^\]]+\])|(\s*/?ko\s+.+))-->#is', $source, $matches,
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* escape_special_chars common function
|
* escape_special_chars common function
|
||||||
* Function: smarty_function_escape_special_chars<br>
|
* Function: smarty_function_escape_special_chars
|
||||||
* Purpose: used by other smarty functions to escape
|
* Purpose: used by other smarty functions to escape
|
||||||
* special chars except for already escaped ones
|
* special chars except for already escaped ones
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function: smarty_make_timestamp<br>
|
* Function: smarty_make_timestamp
|
||||||
* Purpose: used by other smarty functions to make a timestamp from a string.
|
* Purpose: used by other smarty functions to make a timestamp from a string.
|
||||||
*
|
*
|
||||||
* @author Monte Ohrt <monte at ohrt dot com>
|
* @author Monte Ohrt <monte at ohrt dot com>
|
||||||
@ -25,7 +25,7 @@ function smarty_make_timestamp($string)
|
|||||||
(interface_exists('DateTimeInterface', false) && $string instanceof DateTimeInterface)
|
(interface_exists('DateTimeInterface', false) && $string instanceof DateTimeInterface)
|
||||||
) {
|
) {
|
||||||
return (int) $string->format('U'); // PHP 5.2 BC
|
return (int) $string->format('U'); // PHP 5.2 BC
|
||||||
} elseif (strlen($string) == 14 && ctype_digit($string)) {
|
} elseif (strlen($string) === 14 && ctype_digit($string)) {
|
||||||
// it is mysql timestamp format of YYYYMMDDHHMMSS?
|
// it is mysql timestamp format of YYYYMMDDHHMMSS?
|
||||||
return mktime(substr($string, 8, 2), substr($string, 10, 2), substr($string, 12, 2), substr($string, 4, 2),
|
return mktime(substr($string, 8, 2), substr($string, 10, 2), substr($string, 12, 2), substr($string, 4, 2),
|
||||||
substr($string, 6, 2), substr($string, 0, 4));
|
substr($string, 6, 2), substr($string, 0, 4));
|
||||||
@ -35,7 +35,7 @@ function smarty_make_timestamp($string)
|
|||||||
} else {
|
} else {
|
||||||
// strtotime should handle it
|
// strtotime should handle it
|
||||||
$time = strtotime($string);
|
$time = strtotime($string);
|
||||||
if ($time == - 1 || $time === false) {
|
if ($time === - 1 || $time === false) {
|
||||||
// strtotime() was not able to parse $string, use "now":
|
// strtotime() was not able to parse $string, use "now":
|
||||||
return time();
|
return time();
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,11 @@
|
|||||||
* @subpackage PluginsShared
|
* @subpackage PluginsShared
|
||||||
*/
|
*/
|
||||||
if (!function_exists('smarty_mb_str_replace')) {
|
if (!function_exists('smarty_mb_str_replace')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Multibyte string replace
|
* Multibyte string replace
|
||||||
*
|
*
|
||||||
* @param string $search the string to be searched
|
* @param string|string[] $search the string to be searched
|
||||||
* @param string $replace the replacement string
|
* @param string|string[] $replace the replacement string
|
||||||
* @param string $subject the source string
|
* @param string $subject the source string
|
||||||
* @param int &$count number of matches found
|
* @param int &$count number of matches found
|
||||||
*
|
*
|
||||||
@ -49,7 +48,6 @@ if (!function_exists('smarty_mb_str_replace')) {
|
|||||||
$count = count($parts) - 1;
|
$count = count($parts) - 1;
|
||||||
$subject = implode($replace, $parts);
|
$subject = implode($replace, $parts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $subject;
|
return $subject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,12 @@
|
|||||||
function smarty_mb_to_unicode($string, $encoding = null)
|
function smarty_mb_to_unicode($string, $encoding = null)
|
||||||
{
|
{
|
||||||
if ($encoding) {
|
if ($encoding) {
|
||||||
$expanded = mb_convert_encoding($string, "UTF-32BE", $encoding);
|
$expanded = mb_convert_encoding($string, 'UTF-32BE', $encoding);
|
||||||
} else {
|
} else {
|
||||||
$expanded = mb_convert_encoding($string, "UTF-32BE");
|
$expanded = mb_convert_encoding($string, 'UTF-32BE');
|
||||||
}
|
}
|
||||||
|
|
||||||
return unpack("N*", $expanded);
|
return unpack('N*', $expanded);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,8 +46,8 @@ function smarty_mb_from_unicode($unicode, $encoding = null)
|
|||||||
$encoding = mb_internal_encoding();
|
$encoding = mb_internal_encoding();
|
||||||
}
|
}
|
||||||
foreach ((array) $unicode as $utf32be) {
|
foreach ((array) $unicode as $utf32be) {
|
||||||
$character = pack("N*", $utf32be);
|
$character = pack('N*', $utf32be);
|
||||||
$t .= mb_convert_encoding($character, $encoding, "UTF-32BE");
|
$t .= mb_convert_encoding($character, $encoding, 'UTF-32BE');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $t;
|
return $t;
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Smarty shared plugin
|
|
||||||
*
|
|
||||||
* @package Smarty
|
|
||||||
* @subpackage PluginsShared
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!function_exists('smarty_mb_wordwrap')) {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wrap a string to a given number of characters
|
|
||||||
*
|
|
||||||
* @link http://php.net/manual/en/function.wordwrap.php for similarity
|
|
||||||
*
|
|
||||||
* @param string $str the string to wrap
|
|
||||||
* @param int $width the width of the output
|
|
||||||
* @param string $break the character used to break the line
|
|
||||||
* @param boolean $cut ignored parameter, just for the sake of
|
|
||||||
*
|
|
||||||
* @return string wrapped string
|
|
||||||
* @author Rodney Rehm
|
|
||||||
*/
|
|
||||||
function smarty_mb_wordwrap($str, $width = 75, $break = "\n", $cut = false)
|
|
||||||
{
|
|
||||||
// break words into tokens using white space as a delimiter
|
|
||||||
$tokens =
|
|
||||||
preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, - 1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
|
|
||||||
$length = 0;
|
|
||||||
$t = '';
|
|
||||||
$_previous = false;
|
|
||||||
$_space = false;
|
|
||||||
|
|
||||||
foreach ($tokens as $_token) {
|
|
||||||
$token_length = mb_strlen($_token, Smarty::$_CHARSET);
|
|
||||||
$_tokens = array($_token);
|
|
||||||
if ($token_length > $width) {
|
|
||||||
if ($cut) {
|
|
||||||
$_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, $_token, - 1,
|
|
||||||
PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($_tokens as $token) {
|
|
||||||
$_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token);
|
|
||||||
$token_length = mb_strlen($token, Smarty::$_CHARSET);
|
|
||||||
$length += $token_length;
|
|
||||||
|
|
||||||
if ($length > $width) {
|
|
||||||
// remove space before inserted break
|
|
||||||
if ($_previous) {
|
|
||||||
$t = mb_substr($t, 0, - 1, Smarty::$_CHARSET);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$_space) {
|
|
||||||
// add the break before the token
|
|
||||||
if (!empty($t)) {
|
|
||||||
$t .= $break;
|
|
||||||
}
|
|
||||||
$length = $token_length;
|
|
||||||
}
|
|
||||||
} elseif ($token == "\n") {
|
|
||||||
// hard break must reset counters
|
|
||||||
$_previous = 0;
|
|
||||||
$length = 0;
|
|
||||||
}
|
|
||||||
$_previous = $_space;
|
|
||||||
// add the token
|
|
||||||
$t .= $token;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $t;
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,15 +5,15 @@
|
|||||||
* @package Smarty
|
* @package Smarty
|
||||||
* @subpackage PluginsFilter
|
* @subpackage PluginsFilter
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty htmlspecialchars variablefilter plugin
|
* Smarty htmlspecialchars variablefilter plugin
|
||||||
*
|
*
|
||||||
* @param string $source input string
|
* @param string $source input string
|
||||||
|
* @param \Smarty_Internal_Template $template
|
||||||
*
|
*
|
||||||
* @return string filtered output
|
* @return string filtered output
|
||||||
*/
|
*/
|
||||||
function smarty_variablefilter_htmlspecialchars($source)
|
function smarty_variablefilter_htmlspecialchars($source, Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET);
|
return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET);
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
|
|||||||
$_smarty_tpl->compile_id, $content, $timestamp);
|
$_smarty_tpl->compile_id, $content, $timestamp);
|
||||||
}
|
}
|
||||||
if (isset($content)) {
|
if (isset($content)) {
|
||||||
eval("?>" . $content);
|
eval('?>' . $content);
|
||||||
$cached->content = null;
|
$cached->content = null;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -204,7 +204,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
|
|||||||
* @param string $compile_id compile id
|
* @param string $compile_id compile id
|
||||||
* @param integer $exp_time expiration time (number of seconds, not timestamp)
|
* @param integer $exp_time expiration time (number of seconds, not timestamp)
|
||||||
*
|
*
|
||||||
* @return integer number of cache files deleted
|
* @return int number of cache files deleted
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
|
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
|
||||||
{
|
{
|
||||||
|
@ -104,7 +104,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isset($content)) {
|
if (isset($content)) {
|
||||||
eval("?>" . $content);
|
eval('?>' . $content);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -180,7 +180,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
|
|||||||
* @param string $compile_id compile id
|
* @param string $compile_id compile id
|
||||||
* @param integer $exp_time expiration time [being ignored]
|
* @param integer $exp_time expiration time [being ignored]
|
||||||
*
|
*
|
||||||
* @return integer number of cache files deleted [always -1]
|
* @return int number of cache files deleted [always -1]
|
||||||
|
* @throws \SmartyException
|
||||||
* @uses buildCachedFilepath() to generate the CacheID
|
* @uses buildCachedFilepath() to generate the CacheID
|
||||||
* @uses invalidate() to mark CacheIDs parent chain as outdated
|
* @uses invalidate() to mark CacheIDs parent chain as outdated
|
||||||
* @uses delete() to remove CacheID from cache
|
* @uses delete() to remove CacheID from cache
|
||||||
@ -272,8 +273,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
|
|||||||
*/
|
*/
|
||||||
protected function addMetaTimestamp(&$content)
|
protected function addMetaTimestamp(&$content)
|
||||||
{
|
{
|
||||||
$mt = explode(" ", microtime());
|
$mt = explode(' ', microtime());
|
||||||
$ts = pack("NN", $mt[ 1 ], (int) ($mt[ 0 ] * 100000000));
|
$ts = pack('NN', $mt[ 1 ], (int) ($mt[ 0 ] * 100000000));
|
||||||
$content = $ts . $content;
|
$content = $ts . $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -370,7 +371,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Translate a CacheID into the list of applicable InvalidationKeys.
|
* Translate a CacheID into the list of applicable InvalidationKeys.
|
||||||
* Splits "some|chain|into|an|array" into array( '#clearAll#', 'some', 'some|chain', 'some|chain|into', ... )
|
* Splits 'some|chain|into|an|array' into array( '#clearAll#', 'some', 'some|chain', 'some|chain|into', ... )
|
||||||
*
|
*
|
||||||
* @param string $cid CacheID to translate
|
* @param string $cid CacheID to translate
|
||||||
* @param string $resource_name template name
|
* @param string $resource_name template name
|
||||||
|
@ -61,8 +61,8 @@ class Smarty_Data extends Smarty_Internal_Data
|
|||||||
foreach ($_parent as $_key => $_val) {
|
foreach ($_parent as $_key => $_val) {
|
||||||
$this->tpl_vars[ $_key ] = new Smarty_Variable($_val);
|
$this->tpl_vars[ $_key ] = new Smarty_Variable($_val);
|
||||||
}
|
}
|
||||||
} elseif ($_parent != null) {
|
} elseif ($_parent !== null) {
|
||||||
throw new SmartyException("Wrong type for template variables");
|
throw new SmartyException('Wrong type for template variables');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ class Smarty_Internal_Block
|
|||||||
public $prepend = false;
|
public $prepend = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block calls {$smarty.block.child}
|
* Block calls $smarty.block.child
|
||||||
*
|
*
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
@ -67,7 +67,7 @@ class Smarty_Internal_Block
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty_Internal_Block constructor.
|
* Smarty_Internal_Block constructor.
|
||||||
* - if outer level {block} of child template ($state == 1) save it as child root block
|
* - if outer level {block} of child template ($state === 1) save it as child root block
|
||||||
* - otherwise process inheritance and render
|
* - otherwise process inheritance and render
|
||||||
*
|
*
|
||||||
* @param string $name block name
|
* @param string $name block name
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
* @author Uwe Tews
|
* @author Uwe Tews
|
||||||
* @author Rodney Rehm
|
* @author Rodney Rehm
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class does contain all necessary methods for the HTML cache on file system
|
* This class does contain all necessary methods for the HTML cache on file system
|
||||||
* Implements the file system as resource for the HTML cache Version ussing nocache inserts.
|
* Implements the file system as resource for the HTML cache Version ussing nocache inserts.
|
||||||
@ -29,11 +28,14 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
|
|||||||
{
|
{
|
||||||
$source = &$_template->source;
|
$source = &$_template->source;
|
||||||
$smarty = &$_template->smarty;
|
$smarty = &$_template->smarty;
|
||||||
$_compile_dir_sep = $smarty->use_sub_dirs ? $smarty->ds : '^';
|
$_compile_dir_sep = $smarty->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
|
||||||
$_filepath = sha1($source->uid . $smarty->_joined_template_dir);
|
$_filepath = sha1($source->uid . $smarty->_joined_template_dir);
|
||||||
$cached->filepath = $smarty->getCacheDir();
|
$cached->filepath = $smarty->getCacheDir();
|
||||||
if (isset($_template->cache_id)) {
|
if (isset($_template->cache_id)) {
|
||||||
$cached->filepath .= preg_replace(array('![^\w|]+!', '![|]+!'), array('_', $_compile_dir_sep),
|
$cached->filepath .= preg_replace(array('![^\w|]+!',
|
||||||
|
'![|]+!'),
|
||||||
|
array('_',
|
||||||
|
$_compile_dir_sep),
|
||||||
$_template->cache_id) . $_compile_dir_sep;
|
$_template->cache_id) . $_compile_dir_sep;
|
||||||
}
|
}
|
||||||
if (isset($_template->compile_id)) {
|
if (isset($_template->compile_id)) {
|
||||||
@ -41,8 +43,10 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
|
|||||||
}
|
}
|
||||||
// if use_sub_dirs, break file into directories
|
// if use_sub_dirs, break file into directories
|
||||||
if ($smarty->use_sub_dirs) {
|
if ($smarty->use_sub_dirs) {
|
||||||
$cached->filepath .= $_filepath[ 0 ] . $_filepath[ 1 ] . $smarty->ds . $_filepath[ 2 ] . $_filepath[ 3 ] . $smarty->ds .
|
$cached->filepath .= $_filepath[ 0 ] . $_filepath[ 1 ] . DIRECTORY_SEPARATOR . $_filepath[ 2 ] .
|
||||||
$_filepath[ 4 ] . $_filepath[ 5 ] . $smarty->ds;
|
$_filepath[ 3 ] .
|
||||||
|
DIRECTORY_SEPARATOR .
|
||||||
|
$_filepath[ 4 ] . $_filepath[ 5 ] . DIRECTORY_SEPARATOR;
|
||||||
}
|
}
|
||||||
$cached->filepath .= $_filepath;
|
$cached->filepath .= $_filepath;
|
||||||
$basename = $source->handler->getBasename($source);
|
$basename = $source->handler->getBasename($source);
|
||||||
@ -83,12 +87,13 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
|
|||||||
*
|
*
|
||||||
* @return boolean true or false if the cached content does not exist
|
* @return boolean true or false if the cached content does not exist
|
||||||
*/
|
*/
|
||||||
public function process(Smarty_Internal_Template $_smarty_tpl, Smarty_Template_Cached $cached = null,
|
public function process(Smarty_Internal_Template $_smarty_tpl,
|
||||||
|
Smarty_Template_Cached $cached = null,
|
||||||
$update = false)
|
$update = false)
|
||||||
{
|
{
|
||||||
$_smarty_tpl->cached->valid = false;
|
$_smarty_tpl->cached->valid = false;
|
||||||
if ($update && defined('HHVM_VERSION')) {
|
if ($update && defined('HHVM_VERSION')) {
|
||||||
eval("?>" . file_get_contents($_smarty_tpl->cached->filepath));
|
eval('?>' . file_get_contents($_smarty_tpl->cached->filepath));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return @include $_smarty_tpl->cached->filepath;
|
return @include $_smarty_tpl->cached->filepath;
|
||||||
@ -101,14 +106,18 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
|
|||||||
* @param Smarty_Internal_Template $_template template object
|
* @param Smarty_Internal_Template $_template template object
|
||||||
* @param string $content content to cache
|
* @param string $content content to cache
|
||||||
*
|
*
|
||||||
* @return boolean success
|
* @return bool success
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
|
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
|
||||||
{
|
{
|
||||||
if ($_template->smarty->ext->_writeFile->writeFile($_template->cached->filepath, $content,
|
if ($_template->smarty->ext->_writeFile->writeFile($_template->cached->filepath,
|
||||||
|
$content,
|
||||||
$_template->smarty) === true
|
$_template->smarty) === true
|
||||||
) {
|
) {
|
||||||
if (function_exists('opcache_invalidate') && strlen(ini_get("opcache.restrict_api")) < 1) {
|
if (function_exists('opcache_invalidate') &&
|
||||||
|
(!function_exists('ini_get') || strlen(ini_get('opcache.restrict_api'))) < 1
|
||||||
|
) {
|
||||||
opcache_invalidate($_template->cached->filepath, true);
|
opcache_invalidate($_template->cached->filepath, true);
|
||||||
} else if (function_exists('apc_compile_file')) {
|
} else if (function_exists('apc_compile_file')) {
|
||||||
apc_compile_file($_template->cached->filepath);
|
apc_compile_file($_template->cached->filepath);
|
||||||
|
@ -24,6 +24,7 @@ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
|
|||||||
* @param array $parameter array with compilation parameter
|
* @param array $parameter array with compilation parameter
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
||||||
{
|
{
|
||||||
|
@ -71,7 +71,7 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
|
|||||||
$_scope = $compiler->convertScope($_attr, $this->valid_scopes);
|
$_scope = $compiler->convertScope($_attr, $this->valid_scopes);
|
||||||
}
|
}
|
||||||
// optional parameter
|
// optional parameter
|
||||||
$_params = "";
|
$_params = '';
|
||||||
if ($_nocache || $_scope) {
|
if ($_nocache || $_scope) {
|
||||||
$_params .= ' ,' . var_export($_nocache, true);
|
$_params .= ' ,' . var_export($_nocache, true);
|
||||||
}
|
}
|
||||||
@ -85,9 +85,9 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
|
|||||||
$output .= "settype(\$_tmp_array, 'array');\n";
|
$output .= "settype(\$_tmp_array, 'array');\n";
|
||||||
$output .= "}\n";
|
$output .= "}\n";
|
||||||
$output .= "\$_tmp_array{$parameter['smarty_internal_index']} = {$_attr['value']};\n";
|
$output .= "\$_tmp_array{$parameter['smarty_internal_index']} = {$_attr['value']};\n";
|
||||||
$output .= "\$_smarty_tpl->_assignInScope({$_var}, \$_tmp_array{$_params});\n?>";
|
$output .= "\$_smarty_tpl->_assignInScope({$_var}, \$_tmp_array{$_params});?>";
|
||||||
} else {
|
} else {
|
||||||
$output = "<?php \$_smarty_tpl->_assignInScope({$_var}, {$_attr['value']}{$_params});\n?>";
|
$output = "<?php \$_smarty_tpl->_assignInScope({$_var}, {$_attr['value']}{$_params});?>";
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $required_attributes = array('name');
|
public $required_attributes = array('name');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -30,7 +29,6 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $shorttag_order = array('name');
|
public $shorttag_order = array('name');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -38,7 +36,6 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $option_flags = array('hide', 'nocache');
|
public $option_flags = array('hide', 'nocache');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -47,13 +44,6 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
*/
|
*/
|
||||||
public $optional_attributes = array('assign');
|
public $optional_attributes = array('assign');
|
||||||
|
|
||||||
/**
|
|
||||||
* Saved compiler object
|
|
||||||
*
|
|
||||||
* @var Smarty_Internal_TemplateCompilerBase
|
|
||||||
*/
|
|
||||||
public $compiler = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compiles code for the {block} tag
|
* Compiles code for the {block} tag
|
||||||
*
|
*
|
||||||
@ -61,14 +51,13 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
* @param array $parameter array with compilation parameter
|
||||||
*
|
*
|
||||||
* @return bool true
|
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
||||||
{
|
{
|
||||||
if (!isset($compiler->_cache[ 'blockNesting' ])) {
|
if (!isset($compiler->_cache[ 'blockNesting' ])) {
|
||||||
$compiler->_cache[ 'blockNesting' ] = 0;
|
$compiler->_cache[ 'blockNesting' ] = 0;
|
||||||
}
|
}
|
||||||
if ($compiler->_cache[ 'blockNesting' ] == 0) {
|
if ($compiler->_cache[ 'blockNesting' ] === 0) {
|
||||||
// make sure that inheritance gets initialized in template code
|
// make sure that inheritance gets initialized in template code
|
||||||
$this->registerInit($compiler);
|
$this->registerInit($compiler);
|
||||||
$this->option_flags = array('hide', 'nocache', 'append', 'prepend');
|
$this->option_flags = array('hide', 'nocache', 'append', 'prepend');
|
||||||
@ -77,30 +66,24 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher
|
|||||||
}
|
}
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
$compiler->_cache[ 'blockNesting' ] ++;
|
++$compiler->_cache[ 'blockNesting' ];
|
||||||
$_className = 'Block_' . preg_replace('![^\w]+!', '_', uniqid(rand(), true));
|
$_className = 'Block_' . preg_replace('![^\w]+!', '_', uniqid(rand(), true));
|
||||||
$compiler->_cache[ 'blockName' ][ $compiler->_cache[ 'blockNesting' ] ] = $_attr[ 'name' ];
|
$compiler->_cache[ 'blockName' ][ $compiler->_cache[ 'blockNesting' ] ] = $_attr[ 'name' ];
|
||||||
$compiler->_cache[ 'blockClass' ][ $compiler->_cache[ 'blockNesting' ] ] = $_className;
|
$compiler->_cache[ 'blockClass' ][ $compiler->_cache[ 'blockNesting' ] ] = $_className;
|
||||||
$compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ] = array();
|
$compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ] = array();
|
||||||
$compiler->_cache[ 'blockParams' ][ 1 ][ 'subBlocks' ][ trim($_attr[ 'name' ], '"\'') ][] = $_className;
|
$compiler->_cache[ 'blockParams' ][ 1 ][ 'subBlocks' ][ trim($_attr[ 'name' ], '"\'') ][] = $_className;
|
||||||
$this->openTag($compiler, 'block', array($_attr, $compiler->nocache, $compiler->parser->current_buffer,
|
$this->openTag($compiler,
|
||||||
|
'block',
|
||||||
|
array($_attr, $compiler->nocache, $compiler->parser->current_buffer,
|
||||||
$compiler->template->compiled->has_nocache_code,
|
$compiler->template->compiled->has_nocache_code,
|
||||||
$compiler->template->caching));
|
$compiler->template->caching));
|
||||||
// must whole block be nocache ?
|
$compiler->saveRequiredPlugins(true);
|
||||||
if ($compiler->tag_nocache) {
|
|
||||||
$i = 0;
|
|
||||||
}
|
|
||||||
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
||||||
// $compiler->suppressNocacheProcessing = true;
|
|
||||||
if ($_attr[ 'nocache' ] === true) {
|
|
||||||
//$compiler->trigger_template_error('nocache option not allowed', $compiler->parser->lex->taglineno);
|
|
||||||
}
|
|
||||||
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
||||||
$compiler->template->compiled->has_nocache_code = false;
|
$compiler->template->compiled->has_nocache_code = false;
|
||||||
$compiler->suppressNocacheProcessing = true;
|
$compiler->suppressNocacheProcessing = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty Internal Plugin Compile BlockClose Class
|
* Smarty Internal Plugin Compile BlockClose Class
|
||||||
*
|
*
|
||||||
@ -126,7 +109,7 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_
|
|||||||
$_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null;
|
$_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null;
|
||||||
unset($_attr[ 'assign' ], $_attr[ 'name' ]);
|
unset($_attr[ 'assign' ], $_attr[ 'name' ]);
|
||||||
foreach ($_attr as $name => $stat) {
|
foreach ($_attr as $name => $stat) {
|
||||||
if ((is_bool($stat) && $stat !== false) || (!is_bool($stat) && $stat != 'false')) {
|
if ((is_bool($stat) && $stat !== false) || (!is_bool($stat) && $stat !== 'false')) {
|
||||||
$_block[ $name ] = 'true';
|
$_block[ $name ] = 'true';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,7 +127,8 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_
|
|||||||
$output .= "public \${$property} = " . var_export($value,true) .";\n";
|
$output .= "public \${$property} = " . var_export($value,true) .";\n";
|
||||||
}
|
}
|
||||||
$output .= "public function callBlock(Smarty_Internal_Template \$_smarty_tpl) {\n";
|
$output .= "public function callBlock(Smarty_Internal_Template \$_smarty_tpl) {\n";
|
||||||
//$output .= "/*/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/\n";
|
$output .= $compiler->compileRequiredPlugins();
|
||||||
|
$compiler->restoreRequiredPlugins();
|
||||||
if ($compiler->template->compiled->has_nocache_code) {
|
if ($compiler->template->compiled->has_nocache_code) {
|
||||||
$output .= "\$_smarty_tpl->cached->hashes['{$compiler->template->compiled->nocache_hash}'] = true;\n";
|
$output .= "\$_smarty_tpl->cached->hashes['{$compiler->template->compiled->nocache_hash}'] = true;\n";
|
||||||
}
|
}
|
||||||
@ -167,32 +151,22 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_
|
|||||||
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
||||||
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
||||||
$output));
|
$output));
|
||||||
$compiler->blockOrFunctionCode .= $f = $compiler->parser->current_buffer->to_smarty_php($compiler->parser);
|
$compiler->blockOrFunctionCode .= $compiler->parser->current_buffer->to_smarty_php($compiler->parser);
|
||||||
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
||||||
// nocache plugins must be copied
|
|
||||||
if (!empty($compiler->template->compiled->required_plugins[ 'nocache' ])) {
|
|
||||||
foreach ($compiler->template->compiled->required_plugins[ 'nocache' ] as $plugin => $tmp) {
|
|
||||||
foreach ($tmp as $type => $data) {
|
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ $plugin ][ $type ] =
|
|
||||||
$data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// restore old status
|
// restore old status
|
||||||
$compiler->template->compiled->has_nocache_code = $_has_nocache_code;
|
$compiler->template->compiled->has_nocache_code = $_has_nocache_code;
|
||||||
$compiler->tag_nocache = $compiler->nocache;
|
$compiler->tag_nocache = $compiler->nocache;
|
||||||
$compiler->nocache = $_nocache;
|
$compiler->nocache = $_nocache;
|
||||||
$compiler->parser->current_buffer = $_buffer;
|
$compiler->parser->current_buffer = $_buffer;
|
||||||
$output = "<?php \n";
|
$output = "<?php \n";
|
||||||
if ($compiler->_cache[ 'blockNesting' ] == 1) {
|
if ($compiler->_cache[ 'blockNesting' ] === 1) {
|
||||||
$output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name);\n";
|
$output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name);\n";
|
||||||
} else {
|
} else {
|
||||||
$output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name, \$this->tplIndex);\n";
|
$output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name, \$this->tplIndex);\n";
|
||||||
}
|
}
|
||||||
$output .= "?>\n";
|
$output .= "?>\n";
|
||||||
$compiler->_cache[ 'blockNesting' ] --;
|
--$compiler->_cache[ 'blockNesting' ];
|
||||||
if ($compiler->_cache[ 'blockNesting' ] == 0) {
|
if ($compiler->_cache[ 'blockNesting' ] === 0) {
|
||||||
unset($compiler->_cache[ 'blockNesting' ]);
|
unset($compiler->_cache[ 'blockNesting' ]);
|
||||||
}
|
}
|
||||||
$compiler->has_code = true;
|
$compiler->has_code = true;
|
||||||
|
@ -9,46 +9,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty Internal Plugin Compile Block Parent Class
|
* Smarty Internal Plugin Compile Block Child Class
|
||||||
*
|
*
|
||||||
* @author Uwe Tews <uwe.tews@googlemail.com>
|
* @author Uwe Tews <uwe.tews@googlemail.com>
|
||||||
*/
|
*/
|
||||||
class Smarty_Internal_Compile_Block_Child extends Smarty_Internal_CompileBase
|
class Smarty_Internal_Compile_Block_Child extends Smarty_Internal_Compile_Child
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Tag name
|
||||||
*
|
*
|
||||||
* @var array
|
* @var string
|
||||||
* @see Smarty_Internal_CompileBase
|
|
||||||
*/
|
*/
|
||||||
public $option_flags = array();
|
public $tag = 'block_child';
|
||||||
|
|
||||||
/**
|
|
||||||
* Saved compiler object
|
|
||||||
*
|
|
||||||
* @var Smarty_Internal_TemplateCompilerBase
|
|
||||||
*/
|
|
||||||
public $compiler = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compiles code for the {block_parent} tag
|
|
||||||
*
|
|
||||||
* @param array $args array with attributes from parser
|
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
|
||||||
* @return bool true
|
|
||||||
*/
|
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
|
||||||
{
|
|
||||||
if (!isset($compiler->_cache[ 'blockNesting' ])) {
|
|
||||||
$compiler->trigger_template_error(' tag {$smarty.block.child} used outside {block} tags ',
|
|
||||||
$compiler->parser->lex->taglineno);
|
|
||||||
}
|
|
||||||
$compiler->has_code = true;
|
|
||||||
$compiler->suppressNocacheProcessing = true;
|
|
||||||
$compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ][ 'callsChild' ] = 'true';
|
|
||||||
$output = "<?php \n\$_smarty_tpl->inheritance->callChild(\$_smarty_tpl, \$this);\n?>\n";
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -13,61 +13,19 @@
|
|||||||
*
|
*
|
||||||
* @author Uwe Tews <uwe.tews@googlemail.com>
|
* @author Uwe Tews <uwe.tews@googlemail.com>
|
||||||
*/
|
*/
|
||||||
class Smarty_Internal_Compile_Block_Parent extends Smarty_Internal_Compile_Shared_Inheritance
|
class Smarty_Internal_Compile_Block_Parent extends Smarty_Internal_Compile_Child
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Tag name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $tag = 'block_parent';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Block type
|
||||||
*
|
*
|
||||||
* @var array
|
* @var string
|
||||||
* @see Smarty_Internal_CompileBase
|
|
||||||
*/
|
*/
|
||||||
public $optional_attributes = array('name');
|
public $blockType = 'Parent';
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute definition: Overwrites base class.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
* @see Smarty_Internal_CompileBase
|
|
||||||
*/
|
|
||||||
public $shorttag_order = array('name');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute definition: Overwrites base class.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
* @see Smarty_Internal_CompileBase
|
|
||||||
*/
|
|
||||||
public $option_flags = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Saved compiler object
|
|
||||||
*
|
|
||||||
* @var Smarty_Internal_TemplateCompilerBase
|
|
||||||
*/
|
|
||||||
public $compiler = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compiles code for the {block_parent} tag
|
|
||||||
*
|
|
||||||
* @param array $args array with attributes from parser
|
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
|
||||||
* @return bool true
|
|
||||||
*/
|
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
|
||||||
{
|
|
||||||
// check and get attributes
|
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
|
||||||
if (!isset($compiler->_cache[ 'blockNesting' ])) {
|
|
||||||
$compiler->trigger_template_error(' tag {$smarty.block.parent} used outside {block} tags ',
|
|
||||||
$compiler->parser->lex->taglineno);
|
|
||||||
}
|
|
||||||
$compiler->suppressNocacheProcessing = true;
|
|
||||||
$compiler->has_code = true;
|
|
||||||
$output = "<?php \n\$_smarty_tpl->inheritance->callParent(\$_smarty_tpl, \$this" .
|
|
||||||
(isset($_attr[ 'name' ]) ? ", {$_attr[ 'name' ]}" : '') . ");\n?>\n";
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -32,25 +32,35 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
|
|||||||
*/
|
*/
|
||||||
public $shorttag_order = array('levels');
|
public $shorttag_order = array('levels');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tag name may be overloaded by Smarty_Internal_Compile_Continue
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $tag = 'break';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compiles code for the {break} tag
|
* Compiles code for the {break} tag
|
||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
list($levels, $foreachLevels) = $this->checkLevels($args, $compiler);
|
list($levels, $foreachLevels) = $this->checkLevels($args, $compiler);
|
||||||
$output = "<?php\n";
|
$output = "<?php ";
|
||||||
if ($foreachLevels) {
|
if ($foreachLevels > 0 && $this->tag === 'continue') {
|
||||||
|
$foreachLevels--;
|
||||||
|
}
|
||||||
|
if ($foreachLevels > 0) {
|
||||||
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
||||||
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
||||||
$output .= $foreachCompiler->compileRestore($foreachLevels);
|
$output .= $foreachCompiler->compileRestore($foreachLevels);
|
||||||
}
|
}
|
||||||
$output .= "break {$levels};?>";
|
$output .= "{$this->tag} {$levels};?>";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,12 +69,11 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param string $tag tag name
|
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \SmartyCompilerException
|
* @throws \SmartyCompilerException
|
||||||
*/
|
*/
|
||||||
public function checkLevels($args, Smarty_Internal_TemplateCompilerBase $compiler, $tag = 'break')
|
public function checkLevels($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
|
static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
@ -86,7 +95,7 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
|
|||||||
$stack_count = count($compiler->_tag_stack) - 1;
|
$stack_count = count($compiler->_tag_stack) - 1;
|
||||||
$foreachLevels = 0;
|
$foreachLevels = 0;
|
||||||
$lastTag = '';
|
$lastTag = '';
|
||||||
while ($level_count >= 0 && $stack_count >= 0) {
|
while ($level_count > 0 && $stack_count >= 0) {
|
||||||
if (isset($_is_loopy[ $compiler->_tag_stack[ $stack_count ][ 0 ] ])) {
|
if (isset($_is_loopy[ $compiler->_tag_stack[ $stack_count ][ 0 ] ])) {
|
||||||
$lastTag = $compiler->_tag_stack[ $stack_count ][ 0 ];
|
$lastTag = $compiler->_tag_stack[ $stack_count ][ 0 ];
|
||||||
if ($level_count === 0) {
|
if ($level_count === 0) {
|
||||||
@ -99,10 +108,10 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
$stack_count --;
|
$stack_count --;
|
||||||
}
|
}
|
||||||
if ($level_count != 0) {
|
if ($level_count !== 0) {
|
||||||
$compiler->trigger_template_error("cannot {$tag} {$levels} level(s)", null, true);
|
$compiler->trigger_template_error("cannot {$this->tag} {$levels} level(s)", null, true);
|
||||||
}
|
}
|
||||||
if ($lastTag === 'foreach' && $tag === 'break') {
|
if ($lastTag === 'foreach' && $this->tag === 'break' && $foreachLevels > 0) {
|
||||||
$foreachLevels --;
|
$foreachLevels --;
|
||||||
}
|
}
|
||||||
return array($levels, $foreachLevels);
|
return array($levels, $foreachLevels);
|
||||||
|
@ -57,7 +57,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
|
|||||||
// output will be stored in a smarty variable instead of being displayed
|
// output will be stored in a smarty variable instead of being displayed
|
||||||
$_assign = $_attr[ 'assign' ];
|
$_assign = $_attr[ 'assign' ];
|
||||||
}
|
}
|
||||||
//$_name = trim($_attr['name'], "'\"");
|
//$_name = trim($_attr['name'], "''");
|
||||||
$_name = $_attr[ 'name' ];
|
$_name = $_attr[ 'name' ];
|
||||||
unset($_attr[ 'name' ], $_attr[ 'assign' ], $_attr[ 'nocache' ]);
|
unset($_attr[ 'name' ], $_attr[ 'assign' ], $_attr[ 'nocache' ]);
|
||||||
// set flag (compiled code of {function} must be included in cache file
|
// set flag (compiled code of {function} must be included in cache file
|
||||||
@ -74,7 +74,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
|
|||||||
$_paramsArray[] = "'$_key'=>$_value";
|
$_paramsArray[] = "'$_key'=>$_value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$_params = 'array(' . implode(",", $_paramsArray) . ')';
|
$_params = 'array(' . implode(',', $_paramsArray) . ')';
|
||||||
//$compiler->suppressNocacheProcessing = true;
|
//$compiler->suppressNocacheProcessing = true;
|
||||||
// was there an assign attribute
|
// was there an assign attribute
|
||||||
if (isset($_assign)) {
|
if (isset($_assign)) {
|
||||||
|
@ -45,11 +45,11 @@ class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase
|
|||||||
public static function compileSpecialVariable($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter = null)
|
public static function compileSpecialVariable($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter = null)
|
||||||
{
|
{
|
||||||
$tag = trim($parameter[ 0 ], '"\'');
|
$tag = trim($parameter[ 0 ], '"\'');
|
||||||
$name = isset($parameter[ 1 ]) ? $compiler->getId($parameter[ 1 ]) : false;
|
$name = isset($parameter[ 1 ]) ? $compiler->getId($parameter[ 1 ]) : null;
|
||||||
if (!$name) {
|
if (!$name) {
|
||||||
$compiler->trigger_template_error("missing or illegal \$smarty.{$tag} name attribute", null, true);
|
//$compiler->trigger_template_error("missing or illegal \$smarty.{$tag} name attribute", null, true);
|
||||||
}
|
}
|
||||||
return "\$_smarty_tpl->smarty->ext->_capture->getBuffer(\$_smarty_tpl, '{$name}')";
|
return '$_smarty_tpl->smarty->ext->_capture->getBuffer($_smarty_tpl'.(isset($name)?", '{$name}')":')');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
77
vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_child.php
vendored
Normal file
77
vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_child.php
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* This file is part of Smarty.
|
||||||
|
*
|
||||||
|
* (c) 2015 Uwe Tews
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Smarty Internal Plugin Compile Child Class
|
||||||
|
*
|
||||||
|
* @author Uwe Tews <uwe.tews@googlemail.com>
|
||||||
|
*/
|
||||||
|
class Smarty_Internal_Compile_Child extends Smarty_Internal_CompileBase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Attribute definition: Overwrites base class.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
* @see Smarty_Internal_CompileBase
|
||||||
|
*/
|
||||||
|
public $optional_attributes = array('assign');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tag name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $tag = 'child';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block type
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $blockType = 'Child';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compiles code for the {child} tag
|
||||||
|
*
|
||||||
|
* @param array $args array with attributes from parser
|
||||||
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
|
* @param array $parameter array with compilation parameter
|
||||||
|
*
|
||||||
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
*/
|
||||||
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
||||||
|
{
|
||||||
|
// check and get attributes
|
||||||
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
|
$tag = isset($parameter[0]) ? "'{$parameter[0]}'" : "'{{$this->tag}}'";
|
||||||
|
if (!isset($compiler->_cache[ 'blockNesting' ])) {
|
||||||
|
$compiler->trigger_template_error("{$tag} used outside {block} tags ",
|
||||||
|
$compiler->parser->lex->taglineno);
|
||||||
|
}
|
||||||
|
$compiler->has_code = true;
|
||||||
|
$compiler->suppressNocacheProcessing = true;
|
||||||
|
if ($this->blockType === 'Child') {
|
||||||
|
$compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ][ 'callsChild' ] = 'true';
|
||||||
|
}
|
||||||
|
$_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null;
|
||||||
|
$output = "<?php \n";
|
||||||
|
if (isset($_assign)) {
|
||||||
|
$output .= "ob_start();\n";
|
||||||
|
}
|
||||||
|
$output .= '$_smarty_tpl->inheritance->call' . $this->blockType . '($_smarty_tpl, $this' .
|
||||||
|
($this->blockType === 'Child' ? '' : ", {$tag}"). ");\n";
|
||||||
|
if (isset($_assign)) {
|
||||||
|
$output .= "\$_smarty_tpl->assign({$_assign}, ob_get_clean());\n";
|
||||||
|
}
|
||||||
|
$output .="?>\n";
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
@ -16,27 +16,10 @@
|
|||||||
*/
|
*/
|
||||||
class Smarty_Internal_Compile_Continue extends Smarty_Internal_Compile_Break
|
class Smarty_Internal_Compile_Continue extends Smarty_Internal_Compile_Break
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compiles code for the {continue} tag
|
* Tag name
|
||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @var string
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
|
||||||
* @return string compiled code
|
|
||||||
* @throws \SmartyCompilerException
|
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public $tag = 'continue';
|
||||||
{
|
|
||||||
list($levels, $foreachLevels) = $this->checkLevels($args, $compiler, 'continue');
|
|
||||||
$output = "<?php\n";
|
|
||||||
if ($foreachLevels > 1) {
|
|
||||||
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
|
||||||
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
|
||||||
$output .= $foreachCompiler->compileRestore($foreachLevels - 1);
|
|
||||||
}
|
|
||||||
$output .= "continue {$levels};?>";
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -58,13 +58,12 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create template object
|
// create template object
|
||||||
$_output = "\$_template = new {$compiler->smarty->template_class}('eval:'." . $_attr[ 'var' ] .
|
$_output = "\$_template = new {$compiler->smarty->template_class}('eval:'.{$_attr[ 'var' ]}, \$_smarty_tpl->smarty, \$_smarty_tpl);";
|
||||||
", \$_smarty_tpl->smarty, \$_smarty_tpl);";
|
|
||||||
//was there an assign attribute?
|
//was there an assign attribute?
|
||||||
if (isset($_assign)) {
|
if (isset($_assign)) {
|
||||||
$_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";
|
$_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";
|
||||||
} else {
|
} else {
|
||||||
$_output .= "echo \$_template->fetch();";
|
$_output .= 'echo $_template->fetch();';
|
||||||
}
|
}
|
||||||
|
|
||||||
return "<?php $_output ?>";
|
return "<?php $_output ?>";
|
||||||
|
@ -64,18 +64,18 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Shared_Inh
|
|||||||
// add code to initialize inheritance
|
// add code to initialize inheritance
|
||||||
$this->registerInit($compiler, true);
|
$this->registerInit($compiler, true);
|
||||||
$file = trim($_attr[ 'file' ], '\'"');
|
$file = trim($_attr[ 'file' ], '\'"');
|
||||||
if (strlen($file) > 8 && substr($file, 0, 8) == 'extends:') {
|
if (strlen($file) > 8 && substr($file, 0, 8) === 'extends:') {
|
||||||
// generate code for each template
|
// generate code for each template
|
||||||
$files = array_reverse(explode('|', substr($file, 8)));
|
$files = array_reverse(explode('|', substr($file, 8)));
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
if ($file[ 0 ] == '"') {
|
if ($file[ 0 ] === '"') {
|
||||||
$file = trim($file, '".');
|
$file = trim($file, '".');
|
||||||
} else {
|
} else {
|
||||||
$file = "'{$file}'";
|
$file = "'{$file}'";
|
||||||
}
|
}
|
||||||
$i ++;
|
$i ++;
|
||||||
if ($i == count($files) && isset($_attr[ 'extends_resource' ])) {
|
if ($i === count($files) && isset($_attr[ 'extends_resource' ])) {
|
||||||
$this->compileEndChild($compiler);
|
$this->compileEndChild($compiler);
|
||||||
}
|
}
|
||||||
$this->compileInclude($compiler, $file);
|
$this->compileInclude($compiler, $file);
|
||||||
@ -95,21 +95,24 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Shared_Inh
|
|||||||
*
|
*
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
* @param null|string $template optional inheritance parent template
|
* @param null|string $template optional inheritance parent template
|
||||||
|
*
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
private function compileEndChild(Smarty_Internal_TemplateCompilerBase $compiler, $template = null)
|
private function compileEndChild(Smarty_Internal_TemplateCompilerBase $compiler, $template = null)
|
||||||
{
|
{
|
||||||
$inlineUids = '';
|
$inlineUids = '';
|
||||||
if (isset($template) && $compiler->smarty->merge_compiled_includes) {
|
if (isset($template) && $compiler->smarty->merge_compiled_includes) {
|
||||||
$code = $compiler->compileTag('include', array($template, array('scope' => 'parent')));
|
$code = $compiler->compileTag('include', array($template, array('scope' => 'parent')));
|
||||||
if (preg_match("/([,][\s]*['][a-z0-9]+['][,][\s]*[']content.*['])[)]/", $code, $match)) {
|
if (preg_match('/([,][\s]*[\'][a-z0-9]+[\'][,][\s]*[\']content.*[\'])[)]/', $code, $match)) {
|
||||||
$inlineUids = $match[ 1 ];
|
$inlineUids = $match[ 1 ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$compiler->parser->template_postfix[] = new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
$compiler->parser->template_postfix[] = new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
||||||
"<?php \$_smarty_tpl->inheritance->endChild(\$_smarty_tpl" .
|
'<?php $_smarty_tpl->inheritance->endChild($_smarty_tpl' .
|
||||||
(isset($template) ?
|
(isset($template) ?
|
||||||
', ' . $template . $inlineUids :
|
", {$template}{$inlineUids}" :
|
||||||
'') . ");\n?>\n");
|
'') . ");\n?>");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,6 +120,9 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Shared_Inh
|
|||||||
*
|
*
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
* @param string $template subtemplate name
|
* @param string $template subtemplate name
|
||||||
|
*
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
private function compileInclude(Smarty_Internal_TemplateCompilerBase $compiler, $template)
|
private function compileInclude(Smarty_Internal_TemplateCompilerBase $compiler, $template)
|
||||||
{
|
{
|
||||||
@ -129,16 +135,17 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Shared_Inh
|
|||||||
/**
|
/**
|
||||||
* Create source code for {extends} from source components array
|
* Create source code for {extends} from source components array
|
||||||
*
|
*
|
||||||
* @param []\Smarty_Internal_Template_Source $components
|
* @param \Smarty_Internal_Template $template
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function extendsSourceArrayCode($components)
|
public static function extendsSourceArrayCode(Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
$resources = array();
|
$resources = array();
|
||||||
foreach ($components as $source) {
|
foreach ($template->source->components as $source) {
|
||||||
$resources[] = $source->resource;
|
$resources[] = $source->resource;
|
||||||
}
|
}
|
||||||
return '{extends file=\'extends:' . join('|', $resources) . '\' extends_resource=true}';
|
return $template->smarty->left_delimiter . 'extends file=\'extends:' . join('|', $resources) .
|
||||||
|
'\' extends_resource=true' . $template->smarty->right_delimiter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
|
|||||||
public function compile($args, $compiler, $parameter)
|
public function compile($args, $compiler, $parameter)
|
||||||
{
|
{
|
||||||
$compiler->loopNesting ++;
|
$compiler->loopNesting ++;
|
||||||
if ($parameter == 0) {
|
if ($parameter === 0) {
|
||||||
$this->required_attributes = array('start', 'to');
|
$this->required_attributes = array('start', 'to');
|
||||||
$this->optional_attributes = array('max', 'step');
|
$this->optional_attributes = array('max', 'step');
|
||||||
} else {
|
} else {
|
||||||
@ -47,7 +47,7 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
|
|||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
|
|
||||||
$output = "<?php\n";
|
$output = "<?php\n";
|
||||||
if ($parameter == 1) {
|
if ($parameter === 1) {
|
||||||
foreach ($_attr[ 'start' ] as $_statement) {
|
foreach ($_attr[ 'start' ] as $_statement) {
|
||||||
if (is_array($_statement[ 'var' ])) {
|
if (is_array($_statement[ 'var' ])) {
|
||||||
$var = $_statement[ 'var' ][ 'var' ];
|
$var = $_statement[ 'var' ][ 'var' ];
|
||||||
@ -89,10 +89,10 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
$output .= "if (\$_smarty_tpl->tpl_vars[$var]->total > 0) {\n";
|
$output .= "if (\$_smarty_tpl->tpl_vars[$var]->total > 0) {\n";
|
||||||
$output .= "for (\$_smarty_tpl->tpl_vars[$var]->value{$index} = $_statement[value], \$_smarty_tpl->tpl_vars[$var]->iteration = 1;\$_smarty_tpl->tpl_vars[$var]->iteration <= \$_smarty_tpl->tpl_vars[$var]->total;\$_smarty_tpl->tpl_vars[$var]->value{$index} += \$_smarty_tpl->tpl_vars[$var]->step, \$_smarty_tpl->tpl_vars[$var]->iteration++) {\n";
|
$output .= "for (\$_smarty_tpl->tpl_vars[$var]->value{$index} = $_statement[value], \$_smarty_tpl->tpl_vars[$var]->iteration = 1;\$_smarty_tpl->tpl_vars[$var]->iteration <= \$_smarty_tpl->tpl_vars[$var]->total;\$_smarty_tpl->tpl_vars[$var]->value{$index} += \$_smarty_tpl->tpl_vars[$var]->step, \$_smarty_tpl->tpl_vars[$var]->iteration++) {\n";
|
||||||
$output .= "\$_smarty_tpl->tpl_vars[$var]->first = \$_smarty_tpl->tpl_vars[$var]->iteration == 1;";
|
$output .= "\$_smarty_tpl->tpl_vars[$var]->first = \$_smarty_tpl->tpl_vars[$var]->iteration === 1;";
|
||||||
$output .= "\$_smarty_tpl->tpl_vars[$var]->last = \$_smarty_tpl->tpl_vars[$var]->iteration == \$_smarty_tpl->tpl_vars[$var]->total;";
|
$output .= "\$_smarty_tpl->tpl_vars[$var]->last = \$_smarty_tpl->tpl_vars[$var]->iteration === \$_smarty_tpl->tpl_vars[$var]->total;";
|
||||||
}
|
}
|
||||||
$output .= "?>";
|
$output .= '?>';
|
||||||
|
|
||||||
$this->openTag($compiler, 'for', array('for', $compiler->nocache));
|
$this->openTag($compiler, 'for', array('for', $compiler->nocache));
|
||||||
// maybe nocache because of nocache variables
|
// maybe nocache because of nocache variables
|
||||||
@ -161,10 +161,10 @@ class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase
|
|||||||
list($openTag, $compiler->nocache) = $this->closeTag($compiler, array('for', 'forelse'));
|
list($openTag, $compiler->nocache) = $this->closeTag($compiler, array('for', 'forelse'));
|
||||||
|
|
||||||
$output = "<?php }\n";
|
$output = "<?php }\n";
|
||||||
if ($openTag != 'forelse') {
|
if ($openTag !== 'forelse') {
|
||||||
$output .= "}\n";
|
$output .= "}\n";
|
||||||
}
|
}
|
||||||
$output .= "?>\n";
|
$output .= "?>";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,12 +80,12 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
* @throws \SmartyCompilerException
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
$compiler->loopNesting ++;
|
$compiler->loopNesting ++;
|
||||||
// init
|
// init
|
||||||
@ -118,7 +118,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
$fromName = $compiler->getVariableName($_attr[ 'from' ]);
|
$fromName = $compiler->getVariableName($_attr[ 'from' ]);
|
||||||
if ($fromName) {
|
if ($fromName) {
|
||||||
foreach (array('item', 'key') as $a) {
|
foreach (array('item', 'key') as $a) {
|
||||||
if (isset($attributes[ $a ]) && $attributes[ $a ] == $fromName) {
|
if (isset($attributes[ $a ]) && $attributes[ $a ] === $fromName) {
|
||||||
$compiler->trigger_template_error("'{$a}' and 'from' may not have same variable name '{$fromName}'",
|
$compiler->trigger_template_error("'{$a}' and 'from' may not have same variable name '{$fromName}'",
|
||||||
null, true);
|
null, true);
|
||||||
}
|
}
|
||||||
@ -137,7 +137,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
if (!empty($this->matchResults[ 'named' ])) {
|
if (!empty($this->matchResults[ 'named' ])) {
|
||||||
$namedAttr = $this->matchResults[ 'named' ];
|
$namedAttr = $this->matchResults[ 'named' ];
|
||||||
}
|
}
|
||||||
if (isset($_attr[ 'properties' ]) && preg_match_all("/['](.*?)[']/", $_attr[ 'properties' ], $match)) {
|
if (isset($_attr[ 'properties' ]) && preg_match_all('/[\'](.*?)[\']/', $_attr[ 'properties' ], $match)) {
|
||||||
foreach ($match[ 1 ] as $prop) {
|
foreach ($match[ 1 ] as $prop) {
|
||||||
if (in_array($prop, $this->itemProperties)) {
|
if (in_array($prop, $this->itemProperties)) {
|
||||||
$itemAttr[ $prop ] = true;
|
$itemAttr[ $prop ] = true;
|
||||||
@ -229,7 +229,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
$output .= "{$itemVar}->first = !{$itemVar}->index;\n";
|
$output .= "{$itemVar}->first = !{$itemVar}->index;\n";
|
||||||
}
|
}
|
||||||
if (isset($itemAttr[ 'last' ])) {
|
if (isset($itemAttr[ 'last' ])) {
|
||||||
$output .= "{$itemVar}->last = {$itemVar}->iteration == {$itemVar}->total;\n";
|
$output .= "{$itemVar}->last = {$itemVar}->iteration === {$itemVar}->total;\n";
|
||||||
}
|
}
|
||||||
if (isset($foreachVar)) {
|
if (isset($foreachVar)) {
|
||||||
if (isset($namedAttr[ 'iteration' ])) {
|
if (isset($namedAttr[ 'iteration' ])) {
|
||||||
@ -242,13 +242,13 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
$output .= "{$foreachVar}->value['first'] = !{$foreachVar}->value['index'];\n";
|
$output .= "{$foreachVar}->value['first'] = !{$foreachVar}->value['index'];\n";
|
||||||
}
|
}
|
||||||
if (isset($namedAttr[ 'last' ])) {
|
if (isset($namedAttr[ 'last' ])) {
|
||||||
$output .= "{$foreachVar}->value['last'] = {$foreachVar}->value['iteration'] == {$foreachVar}->value['total'];\n";
|
$output .= "{$foreachVar}->value['last'] = {$foreachVar}->value['iteration'] === {$foreachVar}->value['total'];\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($itemAttr)) {
|
if (!empty($itemAttr)) {
|
||||||
$output .= "{$local}saved = {$itemVar};\n";
|
$output .= "{$local}saved = {$itemVar};\n";
|
||||||
}
|
}
|
||||||
$output .= "?>";
|
$output .= '?>';
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
@ -262,7 +262,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
|
|||||||
*/
|
*/
|
||||||
public function compileRestore($levels)
|
public function compileRestore($levels)
|
||||||
{
|
{
|
||||||
return "\$_smarty_tpl->smarty->ext->_foreach->restore(\$_smarty_tpl, {$levels});\n";
|
return "\$_smarty_tpl->smarty->ext->_foreach->restore(\$_smarty_tpl, {$levels});";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,11 +279,10 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
@ -291,10 +290,10 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
|
|||||||
list($openTag, $nocache, $local, $itemVar, $restore) = $this->closeTag($compiler, array('foreach'));
|
list($openTag, $nocache, $local, $itemVar, $restore) = $this->closeTag($compiler, array('foreach'));
|
||||||
$this->openTag($compiler, 'foreachelse', array('foreachelse', $nocache, $local, $itemVar, 0));
|
$this->openTag($compiler, 'foreachelse', array('foreachelse', $nocache, $local, $itemVar, 0));
|
||||||
$output = "<?php\n";
|
$output = "<?php\n";
|
||||||
if ($restore == 2) {
|
if ($restore === 2) {
|
||||||
$output .= "{$itemVar} = {$local}saved;\n";
|
$output .= "{$itemVar} = {$local}saved;\n";
|
||||||
}
|
}
|
||||||
$output .= "}\n} else {\n?>\n";
|
$output .= "}\n} else {\n?>";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,11 +311,11 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
$compiler->loopNesting --;
|
$compiler->loopNesting --;
|
||||||
// must endblock be nocache?
|
// must endblock be nocache?
|
||||||
@ -328,7 +327,7 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
|
|||||||
$this->closeTag($compiler, array('foreach', 'foreachelse'));
|
$this->closeTag($compiler, array('foreach', 'foreachelse'));
|
||||||
$output = "<?php\n";
|
$output = "<?php\n";
|
||||||
|
|
||||||
if ($restore == 2) {
|
if ($restore === 2) {
|
||||||
$output .= "{$itemVar} = {$local}saved;\n";
|
$output .= "{$itemVar} = {$local}saved;\n";
|
||||||
}
|
}
|
||||||
if ($restore > 0) {
|
if ($restore > 0) {
|
||||||
@ -338,7 +337,7 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
|
|||||||
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
/* @var Smarty_Internal_Compile_Foreach $foreachCompiler */
|
||||||
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
$foreachCompiler = $compiler->getTagCompiler('foreach');
|
||||||
$output .= $foreachCompiler->compileRestore(1);
|
$output .= $foreachCompiler->compileRestore(1);
|
||||||
$output .= "?>\n";
|
$output .= "?>";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,12 +46,11 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return bool true
|
* @return bool true
|
||||||
* @throws \SmartyCompilerException
|
* @throws \SmartyCompilerException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
@ -60,7 +59,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
|
|||||||
$compiler->trigger_template_error('nocache option not allowed', null, true);
|
$compiler->trigger_template_error('nocache option not allowed', null, true);
|
||||||
}
|
}
|
||||||
unset($_attr[ 'nocache' ]);
|
unset($_attr[ 'nocache' ]);
|
||||||
$_name = trim($_attr[ 'name' ], "'\"");
|
$_name = trim($_attr[ 'name' ], '\'"');
|
||||||
$compiler->parent_compiler->tpl_function[ $_name ] = array();
|
$compiler->parent_compiler->tpl_function[ $_name ] = array();
|
||||||
$save = array($_attr, $compiler->parser->current_buffer, $compiler->template->compiled->has_nocache_code,
|
$save = array($_attr, $compiler->parser->current_buffer, $compiler->template->compiled->has_nocache_code,
|
||||||
$compiler->template->caching);
|
$compiler->template->caching);
|
||||||
@ -68,6 +67,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
|
|||||||
// Init temporary context
|
// Init temporary context
|
||||||
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
$compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template();
|
||||||
$compiler->template->compiled->has_nocache_code = false;
|
$compiler->template->compiled->has_nocache_code = false;
|
||||||
|
$compiler->saveRequiredPlugins(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,16 +93,15 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param object|\Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param object|\Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return bool true
|
* @return bool true
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
$this->compiler = $compiler;
|
$this->compiler = $compiler;
|
||||||
$saved_data = $this->closeTag($compiler, array('function'));
|
$saved_data = $this->closeTag($compiler, array('function'));
|
||||||
$_attr = $saved_data[ 0 ];
|
$_attr = $saved_data[ 0 ];
|
||||||
$_name = trim($_attr[ 'name' ], "'\"");
|
$_name = trim($_attr[ 'name' ], '\'"');
|
||||||
$compiler->parent_compiler->tpl_function[ $_name ][ 'compiled_filepath' ] =
|
$compiler->parent_compiler->tpl_function[ $_name ][ 'compiled_filepath' ] =
|
||||||
$compiler->parent_compiler->template->compiled->filepath;
|
$compiler->parent_compiler->template->compiled->filepath;
|
||||||
$compiler->parent_compiler->tpl_function[ $_name ][ 'uid' ] = $compiler->template->source->uid;
|
$compiler->parent_compiler->tpl_function[ $_name ][ 'uid' ] = $compiler->template->source->uid;
|
||||||
@ -118,7 +117,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($_paramsArray)) {
|
if (!empty($_paramsArray)) {
|
||||||
$_params = 'array(' . implode(",", $_paramsArray) . ')';
|
$_params = 'array(' . implode(',', $_paramsArray) . ')';
|
||||||
$_paramsCode = "\$params = array_merge($_params, \$params);\n";
|
$_paramsCode = "\$params = array_merge($_params, \$params);\n";
|
||||||
} else {
|
} else {
|
||||||
$_paramsCode = '';
|
$_paramsCode = '';
|
||||||
@ -134,15 +133,16 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
|
|||||||
$output = "<?php\n";
|
$output = "<?php\n";
|
||||||
$output .= "/* {$_funcNameCaching} */\n";
|
$output .= "/* {$_funcNameCaching} */\n";
|
||||||
$output .= "if (!function_exists('{$_funcNameCaching}')) {\n";
|
$output .= "if (!function_exists('{$_funcNameCaching}')) {\n";
|
||||||
$output .= "function {$_funcNameCaching} (\$_smarty_tpl,\$params) {\n";
|
$output .= "function {$_funcNameCaching} (Smarty_Internal_Template \$_smarty_tpl,\$params) {\n";
|
||||||
$output .= "ob_start();\n";
|
$output .= "ob_start();\n";
|
||||||
|
$output .= $compiler->compileRequiredPlugins();
|
||||||
$output .= "\$_smarty_tpl->compiled->has_nocache_code = true;\n";
|
$output .= "\$_smarty_tpl->compiled->has_nocache_code = true;\n";
|
||||||
$output .= $_paramsCode;
|
$output .= $_paramsCode;
|
||||||
$output .= "foreach (\$params as \$key => \$value) {\n\$_smarty_tpl->tpl_vars[\$key] = new Smarty_Variable(\$value, \$_smarty_tpl->isRenderingCache);\n}";
|
$output .= "foreach (\$params as \$key => \$value) {\n\$_smarty_tpl->tpl_vars[\$key] = new Smarty_Variable(\$value, \$_smarty_tpl->isRenderingCache);\n}\n";
|
||||||
$output .= "\$params = var_export(\$params, true);\n";
|
$output .= "\$params = var_export(\$params, true);\n";
|
||||||
$output .= "echo \"/*%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/<?php ";
|
$output .= "echo \"/*%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/<?php ";
|
||||||
$output .= "\\\$_smarty_tpl->smarty->ext->_tplFunction->saveTemplateVariables(\\\$_smarty_tpl, '{$_name}');\nforeach (\$params as \\\$key => \\\$value) {\n\\\$_smarty_tpl->tpl_vars[\\\$key] = new Smarty_Variable(\\\$value, \\\$_smarty_tpl->isRenderingCache);\n}\n?>";
|
$output .= "\\\$_smarty_tpl->smarty->ext->_tplFunction->saveTemplateVariables(\\\$_smarty_tpl, '{$_name}');\nforeach (\$params as \\\$key => \\\$value) {\n\\\$_smarty_tpl->tpl_vars[\\\$key] = new Smarty_Variable(\\\$value, \\\$_smarty_tpl->isRenderingCache);\n}\n?>";
|
||||||
$output .= "/*/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/\n\";?>";
|
$output .= "/*/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/\";?>";
|
||||||
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
||||||
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
||||||
$output));
|
$output));
|
||||||
@ -166,9 +166,11 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
|
|||||||
$output = "<?php\n";
|
$output = "<?php\n";
|
||||||
$output .= "/* {$_funcName} */\n";
|
$output .= "/* {$_funcName} */\n";
|
||||||
$output .= "if (!function_exists('{$_funcName}')) {\n";
|
$output .= "if (!function_exists('{$_funcName}')) {\n";
|
||||||
$output .= "function {$_funcName}(\$_smarty_tpl,\$params) {\n";
|
$output .= "function {$_funcName}(Smarty_Internal_Template \$_smarty_tpl,\$params) {\n";
|
||||||
$output .= $_paramsCode;
|
$output .= $_paramsCode;
|
||||||
$output .= "foreach (\$params as \$key => \$value) {\n\$_smarty_tpl->tpl_vars[\$key] = new Smarty_Variable(\$value, \$_smarty_tpl->isRenderingCache);\n}?>";
|
$output .= "foreach (\$params as \$key => \$value) {\n\$_smarty_tpl->tpl_vars[\$key] = new Smarty_Variable(\$value, \$_smarty_tpl->isRenderingCache);\n}\n";
|
||||||
|
$output .= $compiler->compileCheckPlugins(array_merge($compiler->required_plugins[ 'compiled' ], $compiler->required_plugins[ 'nocache' ]));
|
||||||
|
$output .= "?>\n";
|
||||||
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
$compiler->parser->current_buffer->append_subtree($compiler->parser,
|
||||||
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
||||||
$output));
|
$output));
|
||||||
@ -180,19 +182,10 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
|
|||||||
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
new Smarty_Internal_ParseTree_Tag($compiler->parser,
|
||||||
$output));
|
$output));
|
||||||
$compiler->parent_compiler->blockOrFunctionCode .= $compiler->parser->current_buffer->to_smarty_php($compiler->parser);
|
$compiler->parent_compiler->blockOrFunctionCode .= $compiler->parser->current_buffer->to_smarty_php($compiler->parser);
|
||||||
// nocache plugins must be copied
|
|
||||||
if (!empty($compiler->template->compiled->required_plugins[ 'nocache' ])) {
|
|
||||||
foreach ($compiler->template->compiled->required_plugins[ 'nocache' ] as $plugin => $tmp) {
|
|
||||||
foreach ($tmp as $type => $data) {
|
|
||||||
$compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ $plugin ][ $type ] =
|
|
||||||
$data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// restore old buffer
|
// restore old buffer
|
||||||
|
|
||||||
$compiler->parser->current_buffer = $saved_data[ 1 ];
|
$compiler->parser->current_buffer = $saved_data[ 1 ];
|
||||||
// restore old status
|
// restore old status
|
||||||
|
$compiler->restoreRequiredPlugins();
|
||||||
$compiler->template->compiled->has_nocache_code = $saved_data[ 2 ];
|
$compiler->template->compiled->has_nocache_code = $saved_data[ 2 ];
|
||||||
$compiler->template->caching = $saved_data[ 3 ];
|
$compiler->template->caching = $saved_data[ 3 ];
|
||||||
return true;
|
return true;
|
||||||
|
@ -34,8 +34,8 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
|
|||||||
// must whole block be nocache ?
|
// must whole block be nocache ?
|
||||||
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
||||||
|
|
||||||
if (!array_key_exists("if condition", $parameter)) {
|
if (!isset($parameter['if condition'])) {
|
||||||
$compiler->trigger_template_error("missing if condition", null, true);
|
$compiler->trigger_template_error('missing if condition', null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($parameter[ 'if condition' ])) {
|
if (is_array($parameter[ 'if condition' ])) {
|
||||||
@ -49,9 +49,9 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
|
|||||||
$compiler->setNocacheInVariable($var);
|
$compiler->setNocacheInVariable($var);
|
||||||
}
|
}
|
||||||
$prefixVar = $compiler->getNewPrefixVariable();
|
$prefixVar = $compiler->getNewPrefixVariable();
|
||||||
$_output = "<?php {$prefixVar} = " . $parameter[ 'if condition' ][ 'value' ] . ";?>\n";
|
$_output = "<?php {$prefixVar} = {$parameter[ 'if condition' ][ 'value' ]};?>\n";
|
||||||
$assignAttr = array();
|
$assignAttr = array();
|
||||||
$assignAttr[][ 'value' ] = "{$prefixVar}";
|
$assignAttr[][ 'value' ] = $prefixVar;
|
||||||
$assignCompiler = new Smarty_Internal_Compile_Assign();
|
$assignCompiler = new Smarty_Internal_Compile_Assign();
|
||||||
if (is_array($parameter[ 'if condition' ][ 'var' ])) {
|
if (is_array($parameter[ 'if condition' ][ 'var' ])) {
|
||||||
$assignAttr[][ 'var' ] = $parameter[ 'if condition' ][ 'var' ][ 'var' ];
|
$assignAttr[][ 'var' ] = $parameter[ 'if condition' ][ 'var' ][ 'var' ];
|
||||||
@ -82,16 +82,15 @@ class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
|
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
|
||||||
$this->openTag($compiler, 'else', array($nesting, $compiler->tag_nocache));
|
$this->openTag($compiler, 'else', array($nesting, $compiler->tag_nocache));
|
||||||
|
|
||||||
return "<?php } else { ?>";
|
return '<?php } else { ?>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,8 +119,8 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
|
|||||||
|
|
||||||
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
|
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
|
||||||
|
|
||||||
if (!array_key_exists("if condition", $parameter)) {
|
if (!isset($parameter['if condition'])) {
|
||||||
$compiler->trigger_template_error("missing elseif condition", null, true);
|
$compiler->trigger_template_error('missing elseif condition', null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$assignCode = '';
|
$assignCode = '';
|
||||||
@ -138,10 +137,10 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
|
|||||||
$compiler->setNocacheInVariable($var);
|
$compiler->setNocacheInVariable($var);
|
||||||
}
|
}
|
||||||
$prefixVar = $compiler->getNewPrefixVariable();
|
$prefixVar = $compiler->getNewPrefixVariable();
|
||||||
$assignCode = "<?php {$prefixVar} = " . $parameter[ 'if condition' ][ 'value' ] . ";?>\n";
|
$assignCode = "<?php {$prefixVar} = {$parameter[ 'if condition' ][ 'value' ]};?>\n";
|
||||||
$assignCompiler = new Smarty_Internal_Compile_Assign();
|
$assignCompiler = new Smarty_Internal_Compile_Assign();
|
||||||
$assignAttr = array();
|
$assignAttr = array();
|
||||||
$assignAttr[][ 'value' ] = "{$prefixVar}";
|
$assignAttr[][ 'value' ] = $prefixVar;
|
||||||
if (is_array($parameter[ 'if condition' ][ 'var' ])) {
|
if (is_array($parameter[ 'if condition' ][ 'var' ])) {
|
||||||
$assignAttr[][ 'var' ] = $parameter[ 'if condition' ][ 'var' ][ 'var' ];
|
$assignAttr[][ 'var' ] = $parameter[ 'if condition' ][ 'var' ][ 'var' ];
|
||||||
$assignCode .= $assignCompiler->compile($assignAttr, $compiler,
|
$assignCode .= $assignCompiler->compile($assignAttr, $compiler,
|
||||||
@ -190,11 +189,10 @@ class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
// must endblock be nocache?
|
// must endblock be nocache?
|
||||||
if ($compiler->nocache) {
|
if ($compiler->nocache) {
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
* @subpackage Compiler
|
* @subpackage Compiler
|
||||||
* @author Uwe Tews
|
* @author Uwe Tews
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty Internal Plugin Compile Include Class
|
* Smarty Internal Plugin Compile Include Class
|
||||||
*
|
*
|
||||||
@ -20,7 +19,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* caching mode to create nocache code but no cache file
|
* caching mode to create nocache code but no cache file
|
||||||
*/
|
*/
|
||||||
const CACHING_NOCACHE_CODE = 9999;
|
const CACHING_NOCACHE_CODE = 9999;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -28,7 +26,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $required_attributes = array('file');
|
public $required_attributes = array('file');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -36,7 +33,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $shorttag_order = array('file');
|
public $shorttag_order = array('file');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -44,7 +40,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $option_flags = array('nocache', 'inline', 'caching');
|
public $option_flags = array('nocache', 'inline', 'caching');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -52,7 +47,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $optional_attributes = array('_any');
|
public $optional_attributes = array('_any');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Valid scope names
|
* Valid scope names
|
||||||
*
|
*
|
||||||
@ -67,17 +61,17 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param Smarty_Internal_SmartyTemplateCompiler $compiler compiler object
|
* @param Smarty_Internal_SmartyTemplateCompiler $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @throws SmartyCompilerException
|
* @return string
|
||||||
* @return string compiled code
|
* @throws \Exception
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_SmartyTemplateCompiler $compiler, $parameter)
|
public function compile($args, Smarty_Internal_SmartyTemplateCompiler $compiler)
|
||||||
{
|
{
|
||||||
$uid = $t_hash = null;
|
$uid = $t_hash = null;
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
|
|
||||||
$fullResourceName = $source_resource = $_attr[ 'file' ];
|
$fullResourceName = $source_resource = $_attr[ 'file' ];
|
||||||
$variable_template = false;
|
$variable_template = false;
|
||||||
$cache_tpl = false;
|
$cache_tpl = false;
|
||||||
@ -90,7 +84,7 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
$variable_template = true;
|
$variable_template = true;
|
||||||
}
|
}
|
||||||
if (!$variable_template) {
|
if (!$variable_template) {
|
||||||
if ($type != 'string') {
|
if ($type !== 'string') {
|
||||||
$fullResourceName = "{$type}:{$name}";
|
$fullResourceName = "{$type}:{$name}";
|
||||||
$compiled = $compiler->parent_compiler->template->compiled;
|
$compiled = $compiler->parent_compiler->template->compiled;
|
||||||
if (isset($compiled->includes[ $fullResourceName ])) {
|
if (isset($compiled->includes[ $fullResourceName ])) {
|
||||||
@ -116,10 +110,8 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
} else {
|
} else {
|
||||||
$variable_template = true;
|
$variable_template = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// scope setup
|
// scope setup
|
||||||
$_scope = $compiler->convertScope($_attr, $this->valid_scopes);
|
$_scope = $compiler->convertScope($_attr, $this->valid_scopes);
|
||||||
|
|
||||||
// set flag to cache subtemplate object when called within loop or template name is variable.
|
// set flag to cache subtemplate object when called within loop or template name is variable.
|
||||||
if ($cache_tpl || $variable_template || $compiler->loopNesting > 0) {
|
if ($cache_tpl || $variable_template || $compiler->loopNesting > 0) {
|
||||||
$_cache_tpl = 'true';
|
$_cache_tpl = 'true';
|
||||||
@ -128,18 +120,14 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
// assume caching is off
|
// assume caching is off
|
||||||
$_caching = Smarty::CACHING_OFF;
|
$_caching = Smarty::CACHING_OFF;
|
||||||
|
|
||||||
$call_nocache = $compiler->tag_nocache || $compiler->nocache;
|
$call_nocache = $compiler->tag_nocache || $compiler->nocache;
|
||||||
|
|
||||||
// caching was on and {include} is not in nocache mode
|
// caching was on and {include} is not in nocache mode
|
||||||
if ($compiler->template->caching && !$compiler->nocache && !$compiler->tag_nocache) {
|
if ($compiler->template->caching && !$compiler->nocache && !$compiler->tag_nocache) {
|
||||||
$_caching = self::CACHING_NOCACHE_CODE;
|
$_caching = self::CACHING_NOCACHE_CODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// flag if included template code should be merged into caller
|
// flag if included template code should be merged into caller
|
||||||
$merge_compiled_includes = ($compiler->smarty->merge_compiled_includes || $_attr[ 'inline' ] === true) &&
|
$merge_compiled_includes = ($compiler->smarty->merge_compiled_includes || $_attr[ 'inline' ] === true) &&
|
||||||
!$compiler->template->source->handler->recompiled;
|
!$compiler->template->source->handler->recompiled;
|
||||||
|
|
||||||
if ($merge_compiled_includes) {
|
if ($merge_compiled_includes) {
|
||||||
// variable template name ?
|
// variable template name ?
|
||||||
if ($variable_template) {
|
if ($variable_template) {
|
||||||
@ -150,7 +138,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
$merge_compiled_includes = false;
|
$merge_compiled_includes = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* if the {include} tag provides individual parameter for caching or compile_id
|
* if the {include} tag provides individual parameter for caching or compile_id
|
||||||
* the subtemplate must not be included into the common cache file and is treated like
|
* the subtemplate must not be included into the common cache file and is treated like
|
||||||
@ -182,7 +169,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
} else {
|
} else {
|
||||||
$_compile_id = '$_smarty_tpl->compile_id';
|
$_compile_id = '$_smarty_tpl->compile_id';
|
||||||
}
|
}
|
||||||
|
|
||||||
// if subtemplate will be called in nocache mode do not merge
|
// if subtemplate will be called in nocache mode do not merge
|
||||||
if ($compiler->template->caching && $call_nocache) {
|
if ($compiler->template->caching && $call_nocache) {
|
||||||
$merge_compiled_includes = false;
|
$merge_compiled_includes = false;
|
||||||
@ -200,7 +186,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
$_assign = $_attr[ 'assign' ];
|
$_assign = $_attr[ 'assign' ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$has_compiled_template = false;
|
$has_compiled_template = false;
|
||||||
if ($merge_compiled_includes) {
|
if ($merge_compiled_includes) {
|
||||||
$c_id = isset($_attr[ 'compile_id' ]) ? $_attr[ 'compile_id' ] : $compiler->template->compile_id;
|
$c_id = isset($_attr[ 'compile_id' ]) ? $_attr[ 'compile_id' ] : $compiler->template->compile_id;
|
||||||
@ -232,13 +217,13 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
$_vars = 'array(' . join(',', $_pairs) . ')';
|
$_vars = 'array(' . join(',', $_pairs) . ')';
|
||||||
}
|
}
|
||||||
$update_compile_id = $compiler->template->caching && !$compiler->tag_nocache && !$compiler->nocache &&
|
$update_compile_id = $compiler->template->caching && !$compiler->tag_nocache && !$compiler->nocache &&
|
||||||
$_compile_id != '$_smarty_tpl->compile_id';
|
$_compile_id !== '$_smarty_tpl->compile_id';
|
||||||
if ($has_compiled_template && !$call_nocache) {
|
if ($has_compiled_template && !$call_nocache) {
|
||||||
$_output = "<?php\n";
|
$_output = "<?php\n";
|
||||||
if ($update_compile_id) {
|
if ($update_compile_id) {
|
||||||
$_output .= $compiler->makeNocacheCode("\$_compile_id_save[] = \$_smarty_tpl->compile_id;\n\$_smarty_tpl->compile_id = {$_compile_id};\n");
|
$_output .= $compiler->makeNocacheCode("\$_compile_id_save[] = \$_smarty_tpl->compile_id;\n\$_smarty_tpl->compile_id = {$_compile_id};\n");
|
||||||
}
|
}
|
||||||
if (!empty($_attr) && $_caching == 9999 && $compiler->template->caching) {
|
if (!empty($_attr) && $_caching === 9999 && $compiler->template->caching) {
|
||||||
$_vars_nc = "foreach ($_vars as \$ik => \$iv) {\n";
|
$_vars_nc = "foreach ($_vars as \$ik => \$iv) {\n";
|
||||||
$_vars_nc .= "\$_smarty_tpl->tpl_vars[\$ik] = new Smarty_Variable(\$iv);\n";
|
$_vars_nc .= "\$_smarty_tpl->tpl_vars[\$ik] = new Smarty_Variable(\$iv);\n";
|
||||||
$_vars_nc .= "}\n";
|
$_vars_nc .= "}\n";
|
||||||
@ -254,11 +239,9 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
if ($update_compile_id) {
|
if ($update_compile_id) {
|
||||||
$_output .= $compiler->makeNocacheCode("\$_smarty_tpl->compile_id = array_pop(\$_compile_id_save);\n");
|
$_output .= $compiler->makeNocacheCode("\$_smarty_tpl->compile_id = array_pop(\$_compile_id_save);\n");
|
||||||
}
|
}
|
||||||
$_output .= "?>\n";
|
$_output .= "?>";
|
||||||
|
|
||||||
return $_output;
|
return $_output;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($call_nocache) {
|
if ($call_nocache) {
|
||||||
$compiler->tag_nocache = true;
|
$compiler->tag_nocache = true;
|
||||||
}
|
}
|
||||||
@ -277,7 +260,7 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
if ($update_compile_id) {
|
if ($update_compile_id) {
|
||||||
$_output .= "\$_smarty_tpl->compile_id = array_pop(\$_compile_id_save);\n";
|
$_output .= "\$_smarty_tpl->compile_id = array_pop(\$_compile_id_save);\n";
|
||||||
}
|
}
|
||||||
$_output .= "?>\n";
|
$_output .= "?>";
|
||||||
return $_output;
|
return $_output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,9 +272,12 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
* @param string $t_hash
|
* @param string $t_hash
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
|
* @throws \Exception
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compileInlineTemplate(Smarty_Internal_SmartyTemplateCompiler $compiler,
|
public function compileInlineTemplate(Smarty_Internal_SmartyTemplateCompiler $compiler,
|
||||||
Smarty_Internal_Template $tpl, $t_hash)
|
Smarty_Internal_Template $tpl,
|
||||||
|
$t_hash)
|
||||||
{
|
{
|
||||||
$uid = $tpl->source->type . $tpl->source->uid;
|
$uid = $tpl->source->type . $tpl->source->uid;
|
||||||
if (!($tpl->source->handler->uncompiled) && $tpl->source->exists) {
|
if (!($tpl->source->handler->uncompiled) && $tpl->source->exists) {
|
||||||
@ -309,29 +295,30 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
|
|||||||
$tpl->mustCompile = true;
|
$tpl->mustCompile = true;
|
||||||
$compiler->parent_compiler->mergedSubTemplatesData[ $uid ][ $t_hash ][ 'nocache_hash' ] =
|
$compiler->parent_compiler->mergedSubTemplatesData[ $uid ][ $t_hash ][ 'nocache_hash' ] =
|
||||||
$tpl->compiled->nocache_hash;
|
$tpl->compiled->nocache_hash;
|
||||||
if ($compiler->template->source->type == 'file') {
|
if ($tpl->source->type === 'file') {
|
||||||
$sourceInfo = $compiler->template->source->filepath;
|
$sourceInfo = $tpl->source->filepath;
|
||||||
} else {
|
} else {
|
||||||
$basename = $compiler->template->source->handler->getBasename($compiler->template->source);
|
$basename = $tpl->source->handler->getBasename($tpl->source);
|
||||||
$sourceInfo = $compiler->template->source->type . ':' .
|
$sourceInfo = $tpl->source->type . ':' .
|
||||||
($basename ? $basename : $compiler->template->source->name);
|
($basename ? $basename : $tpl->source->name);
|
||||||
}
|
}
|
||||||
// get compiled code
|
// get compiled code
|
||||||
$compiled_code = "<?php\n\n";
|
$compiled_code = "<?php\n\n";
|
||||||
$compiled_code .= "/* Start inline template \"{$sourceInfo}\" =============================*/\n";
|
$compiled_code .= "/* Start inline template \"{$sourceInfo}\" =============================*/\n";
|
||||||
$compiled_code .= "function {$tpl->compiled->unifunc} (\$_smarty_tpl) {\n";
|
$compiled_code .= "function {$tpl->compiled->unifunc} (Smarty_Internal_Template \$_smarty_tpl) {\n";
|
||||||
$compiled_code .= "?>\n" . $tpl->compiler->compileTemplateSource($tpl, null, $compiler->parent_compiler);
|
$compiled_code .= "?>\n" . $tpl->compiler->compileTemplateSource($tpl, null, $compiler->parent_compiler);
|
||||||
$compiled_code .= "<?php\n";
|
$compiled_code .= "<?php\n";
|
||||||
$compiled_code .= "}\n?>\n";
|
$compiled_code .= "}\n?>\n";
|
||||||
$compiled_code .= $tpl->compiler->postFilter($tpl->compiler->blockOrFunctionCode);
|
$compiled_code .= $tpl->compiler->postFilter($tpl->compiler->blockOrFunctionCode);
|
||||||
$compiled_code .= "<?php\n\n";
|
$compiled_code .= "<?php\n\n";
|
||||||
$compiled_code .= "/* End inline template \"{$sourceInfo}\" =============================*/\n";
|
$compiled_code .= "/* End inline template \"{$sourceInfo}\" =============================*/\n";
|
||||||
$compiled_code .= "?>";
|
$compiled_code .= '?>';
|
||||||
unset($tpl->compiler);
|
unset($tpl->compiler);
|
||||||
if ($tpl->compiled->has_nocache_code) {
|
if ($tpl->compiled->has_nocache_code) {
|
||||||
// replace nocache_hash
|
// replace nocache_hash
|
||||||
$compiled_code =
|
$compiled_code =
|
||||||
str_replace("{$tpl->compiled->nocache_hash}", $compiler->template->compiled->nocache_hash,
|
str_replace("{$tpl->compiled->nocache_hash}",
|
||||||
|
$compiler->template->compiled->nocache_hash,
|
||||||
$compiled_code);
|
$compiled_code);
|
||||||
$compiler->template->compiled->has_nocache_code = true;
|
$compiler->template->compiled->has_nocache_code = true;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
* @subpackage Compiler
|
* @subpackage Compiler
|
||||||
* @author Uwe Tews
|
* @author Uwe Tews
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty Internal Plugin Compile Insert Class
|
* Smarty Internal Plugin Compile Insert Class
|
||||||
*
|
*
|
||||||
@ -57,7 +56,6 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
|
|
||||||
/** @var Smarty_Internal_Template $_smarty_tpl
|
/** @var Smarty_Internal_Template $_smarty_tpl
|
||||||
* used in evaluated code
|
* used in evaluated code
|
||||||
*/
|
*/
|
||||||
@ -75,7 +73,7 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
if (!empty($_dir)) {
|
if (!empty($_dir)) {
|
||||||
foreach ((array)$_dir as $_script_dir) {
|
foreach ((array)$_dir as $_script_dir) {
|
||||||
$_path = $compiler->smarty->_realpath($_script_dir . $compiler->smarty->ds . $_file, true);
|
$_path = $compiler->smarty->_realpath($_script_dir . DIRECTORY_SEPARATOR . $_file, true);
|
||||||
if (file_exists($_path)) {
|
if (file_exists($_path)) {
|
||||||
$_filepath = $_path;
|
$_filepath = $_path;
|
||||||
break;
|
break;
|
||||||
@ -83,25 +81,22 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($_filepath == false) {
|
if ($_filepath === false) {
|
||||||
$compiler->trigger_template_error("{include_php} file '{$_file}' is not readable", null, true);
|
$compiler->trigger_template_error("{include_php} file '{$_file}' is not readable", null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($compiler->smarty->security_policy)) {
|
if (isset($compiler->smarty->security_policy)) {
|
||||||
$compiler->smarty->security_policy->isTrustedPHPDir($_filepath);
|
$compiler->smarty->security_policy->isTrustedPHPDir($_filepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_attr[ 'assign' ])) {
|
if (isset($_attr[ 'assign' ])) {
|
||||||
// output will be stored in a smarty variable instead of being displayed
|
// output will be stored in a smarty variable instead of being displayed
|
||||||
$_assign = $_attr[ 'assign' ];
|
$_assign = $_attr[ 'assign' ];
|
||||||
}
|
}
|
||||||
$_once = '_once';
|
$_once = '_once';
|
||||||
if (isset($_attr[ 'once' ])) {
|
if (isset($_attr[ 'once' ])) {
|
||||||
if ($_attr[ 'once' ] == 'false') {
|
if ($_attr[ 'once' ] === 'false') {
|
||||||
$_once = '';
|
$_once = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_assign)) {
|
if (isset($_assign)) {
|
||||||
return "<?php ob_start();\ninclude{$_once} ('{$_filepath}');\n\$_smarty_tpl->assign({$_assign},ob_get_clean());\n?>";
|
return "<?php ob_start();\ninclude{$_once} ('{$_filepath}');\n\$_smarty_tpl->assign({$_assign},ob_get_clean());\n?>";
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Smarty Internal Plugin Compile Insert
|
* Smarty Internal Plugin Compile Insert
|
||||||
* Compiles the {insert} tag
|
* Compiles the {insert} tag
|
||||||
@ -24,7 +23,6 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $required_attributes = array('name');
|
public $required_attributes = array('name');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -32,7 +30,6 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
* @see Smarty_Internal_CompileBase
|
* @see Smarty_Internal_CompileBase
|
||||||
*/
|
*/
|
||||||
public $shorttag_order = array('name');
|
public $shorttag_order = array('name');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute definition: Overwrites base class.
|
* Attribute definition: Overwrites base class.
|
||||||
*
|
*
|
||||||
@ -49,14 +46,12 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
* @throws \SmartyCompilerException
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
//Does tag create output
|
|
||||||
$compiler->has_output = isset($_attr[ 'assign' ]) ? false : true;
|
|
||||||
|
|
||||||
$nocacheParam = $compiler->template->caching && ($compiler->tag_nocache || $compiler->nocache);
|
$nocacheParam = $compiler->template->caching && ($compiler->tag_nocache || $compiler->nocache);
|
||||||
if (!$nocacheParam) {
|
if (!$nocacheParam) {
|
||||||
// do not compile as nocache code
|
// do not compile as nocache code
|
||||||
@ -66,7 +61,6 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
$_smarty_tpl = $compiler->template;
|
$_smarty_tpl = $compiler->template;
|
||||||
$_name = null;
|
$_name = null;
|
||||||
$_script = null;
|
$_script = null;
|
||||||
|
|
||||||
$_output = '<?php ';
|
$_output = '<?php ';
|
||||||
// save possible attributes
|
// save possible attributes
|
||||||
eval('$_name = @' . $_attr[ 'name' ] . ';');
|
eval('$_name = @' . $_attr[ 'name' ] . ';');
|
||||||
@ -74,7 +68,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
// output will be stored in a smarty variable instead of being displayed
|
// output will be stored in a smarty variable instead of being displayed
|
||||||
$_assign = $_attr[ 'assign' ];
|
$_assign = $_attr[ 'assign' ];
|
||||||
// create variable to make sure that the compiler knows about its nocache status
|
// create variable to make sure that the compiler knows about its nocache status
|
||||||
$var = trim($_attr[ 'assign' ], "'");
|
$var = trim($_attr[ 'assign' ], '\'');
|
||||||
if (isset($compiler->template->tpl_vars[ $var ])) {
|
if (isset($compiler->template->tpl_vars[ $var ])) {
|
||||||
$compiler->template->tpl_vars[ $var ]->nocache = true;
|
$compiler->template->tpl_vars[ $var ]->nocache = true;
|
||||||
} else {
|
} else {
|
||||||
@ -97,7 +91,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
if (!empty($_dir)) {
|
if (!empty($_dir)) {
|
||||||
foreach ((array)$_dir as $_script_dir) {
|
foreach ((array)$_dir as $_script_dir) {
|
||||||
$_script_dir = rtrim($_script_dir, '/\\') . $compiler->smarty->ds;
|
$_script_dir = rtrim($_script_dir, '/\\') . DIRECTORY_SEPARATOR;
|
||||||
if (file_exists($_script_dir . $_script)) {
|
if (file_exists($_script_dir . $_script)) {
|
||||||
$_filepath = $_script_dir . $_script;
|
$_filepath = $_script_dir . $_script;
|
||||||
break;
|
break;
|
||||||
@ -105,7 +99,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($_filepath == false) {
|
if ($_filepath === false) {
|
||||||
$compiler->trigger_template_error("{insert} missing script file '{$_script}'", null, true);
|
$compiler->trigger_template_error("{insert} missing script file '{$_script}'", null, true);
|
||||||
}
|
}
|
||||||
// code for script file loading
|
// code for script file loading
|
||||||
@ -113,7 +107,8 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
require_once $_filepath;
|
require_once $_filepath;
|
||||||
if (!is_callable($_function)) {
|
if (!is_callable($_function)) {
|
||||||
$compiler->trigger_template_error(" {insert} function '{$_function}' is not callable in script file '{$_script}'",
|
$compiler->trigger_template_error(" {insert} function '{$_function}' is not callable in script file '{$_script}'",
|
||||||
null, true);
|
null,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$_filepath = 'null';
|
$_filepath = 'null';
|
||||||
@ -122,7 +117,8 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
if (!is_callable($_function)) {
|
if (!is_callable($_function)) {
|
||||||
// try plugin
|
// try plugin
|
||||||
if (!$_function = $compiler->getPlugin($_name, 'insert')) {
|
if (!$_function = $compiler->getPlugin($_name, 'insert')) {
|
||||||
$compiler->trigger_template_error("{insert} no function or plugin found for '{$_name}'", null,
|
$compiler->trigger_template_error("{insert} no function or plugin found for '{$_name}'",
|
||||||
|
null,
|
||||||
true);
|
true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -149,7 +145,6 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
|
|||||||
$_output .= "echo {$_function}({$_params},\$_smarty_tpl);?>";
|
$_output .= "echo {$_function}({$_params},\$_smarty_tpl);?>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $_output;
|
return $_output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,9 +32,6 @@ class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase
|
|||||||
if ($_attr[ 'nocache' ] === true) {
|
if ($_attr[ 'nocache' ] === true) {
|
||||||
$compiler->trigger_template_error('nocache option not allowed', null, true);
|
$compiler->trigger_template_error('nocache option not allowed', null, true);
|
||||||
}
|
}
|
||||||
// this tag does not return compiled code
|
|
||||||
$compiler->has_code = true;
|
|
||||||
|
|
||||||
return $compiler->smarty->left_delimiter;
|
return $compiler->smarty->left_delimiter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,18 +43,16 @@ class Smarty_Internal_Compile_Make_Nocache extends Smarty_Internal_CompileBase
|
|||||||
*
|
*
|
||||||
* @param array $args array with attributes from parser
|
* @param array $args array with attributes from parser
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
|
||||||
* @param array $parameter array with compilation parameter
|
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
* @throws \SmartyCompilerException
|
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
if ($compiler->template->caching) {
|
if ($compiler->template->caching) {
|
||||||
$output = "<?php \$_smarty_tpl->smarty->ext->_make_nocache->save(\$_smarty_tpl, {$_attr[ 'var' ]});\n?>\n";
|
$output = "<?php \$_smarty_tpl->smarty->ext->_make_nocache->save(\$_smarty_tpl, {$_attr[ 'var' ]});\n?>\n";
|
||||||
$compiler->has_code = true;
|
$compiler->template->compiled->has_nocache_code = true;
|
||||||
$compiler->suppressNocacheProcessing = true;
|
$compiler->suppressNocacheProcessing = true;
|
||||||
return $output;
|
return $output;
|
||||||
} else {
|
} else {
|
||||||
|
32
vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_parent.php
vendored
Normal file
32
vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_parent.php
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* This file is part of Smarty.
|
||||||
|
*
|
||||||
|
* (c) 2015 Uwe Tews
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Smarty Internal Plugin Compile Parent Class
|
||||||
|
*
|
||||||
|
* @author Uwe Tews <uwe.tews@googlemail.com>
|
||||||
|
*/
|
||||||
|
class Smarty_Internal_Compile_Parent extends Smarty_Internal_Compile_Child
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tag name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $tag = 'parent';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block type
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $blockType = 'Parent';
|
||||||
|
}
|
@ -41,17 +41,19 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
|
|||||||
* @param string $function PHP function name
|
* @param string $function PHP function name
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter, $tag, $function = null)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter, $tag, $function = null)
|
||||||
{
|
{
|
||||||
if (!isset($tag[ 5 ]) || substr($tag, - 5) != 'close') {
|
if (!isset($tag[ 5 ]) || substr($tag, - 5) !== 'close') {
|
||||||
// opening tag of block plugin
|
// opening tag of block plugin
|
||||||
// check and get attributes
|
// check and get attributes
|
||||||
$_attr = $this->getAttributes($compiler, $args);
|
$_attr = $this->getAttributes($compiler, $args);
|
||||||
$this->nesting ++;
|
$this->nesting ++;
|
||||||
unset($_attr[ 'nocache' ]);
|
unset($_attr[ 'nocache' ]);
|
||||||
list($callback, $_paramsArray, $callable) = $this->setup($compiler, $_attr, $tag, $function);
|
list($callback, $_paramsArray, $callable) = $this->setup($compiler, $_attr, $tag, $function);
|
||||||
$_params = 'array(' . implode(",", $_paramsArray) . ')';
|
$_params = 'array(' . implode(',', $_paramsArray) . ')';
|
||||||
|
|
||||||
// compile code
|
// compile code
|
||||||
$output = "<?php ";
|
$output = "<?php ";
|
||||||
@ -63,7 +65,7 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
|
|||||||
$output .= "if (!is_callable({$callable})) {\nthrow new SmartyException('block tag \'{$tag}\' not callable or registered');\n}\n";
|
$output .= "if (!is_callable({$callable})) {\nthrow new SmartyException('block tag \'{$tag}\' not callable or registered');\n}\n";
|
||||||
}
|
}
|
||||||
$output .= "\$_smarty_tpl->smarty->_cache['_tag_stack'][] = array('{$tag}', {$_params});\n";
|
$output .= "\$_smarty_tpl->smarty->_cache['_tag_stack'][] = array('{$tag}', {$_params});\n";
|
||||||
$output .= "\$_block_repeat=true;\necho {$callback}({$_params}, null, \$_smarty_tpl, \$_block_repeat);\nwhile (\$_block_repeat) {\nob_start();\n?>";
|
$output .= "\$_block_repeat=true;\necho {$callback}({$_params}, null, \$_smarty_tpl, \$_block_repeat);\nwhile (\$_block_repeat) {\nob_start();?>";
|
||||||
$this->openTag($compiler, $tag, array($_params, $compiler->nocache, $callback));
|
$this->openTag($compiler, $tag, array($_params, $compiler->nocache, $callback));
|
||||||
// maybe nocache because of nocache variables or nocache plugin
|
// maybe nocache because of nocache variables or nocache plugin
|
||||||
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
|
||||||
@ -74,8 +76,6 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
|
|||||||
}
|
}
|
||||||
// closing tag of block plugin, restore nocache
|
// closing tag of block plugin, restore nocache
|
||||||
list($_params, $compiler->nocache, $callback) = $this->closeTag($compiler, substr($tag, 0, - 5));
|
list($_params, $compiler->nocache, $callback) = $this->closeTag($compiler, substr($tag, 0, - 5));
|
||||||
//Does tag create output
|
|
||||||
$compiler->has_output = isset($_params[ 'assign' ]) ? false : true;
|
|
||||||
// compile code
|
// compile code
|
||||||
if (!isset($parameter[ 'modifier_list' ])) {
|
if (!isset($parameter[ 'modifier_list' ])) {
|
||||||
$mod_pre = $mod_post = $mod_content = '';
|
$mod_pre = $mod_post = $mod_content = '';
|
||||||
@ -88,13 +88,10 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
|
|||||||
array('modifierlist' => $parameter[ 'modifier_list' ],
|
array('modifierlist' => $parameter[ 'modifier_list' ],
|
||||||
'value' => 'ob_get_clean()')) . ";\n";
|
'value' => 'ob_get_clean()')) . ";\n";
|
||||||
}
|
}
|
||||||
$output = "<?php " . $mod_content . "\$_block_repeat=false;\n" . $mod_pre .
|
$output = "<?php {$mod_content}\$_block_repeat=false;\n{$mod_pre}echo {$callback}({$_params}, {$mod_content2}, \$_smarty_tpl, \$_block_repeat);\n{$mod_post}}\n";
|
||||||
"echo {$callback}({$_params}, " . $mod_content2 .
|
$output .= 'array_pop($_smarty_tpl->smarty->_cache[\'_tag_stack\']);?>';
|
||||||
", \$_smarty_tpl, \$_block_repeat);\n" . $mod_post . "}\n";
|
|
||||||
$output .= "array_pop(\$_smarty_tpl->smarty->_cache['_tag_stack']);";
|
|
||||||
$output .= "?>";
|
|
||||||
}
|
}
|
||||||
return $output . "\n";
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,6 +76,8 @@ class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Internal_Com
|
|||||||
*
|
*
|
||||||
* @param array $attributes
|
* @param array $attributes
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function scanForProperties($attributes, Smarty_Internal_TemplateCompilerBase $compiler)
|
public function scanForProperties($attributes, Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
@ -110,8 +112,9 @@ class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Internal_Com
|
|||||||
public function buildPropertyPreg($named, $attributes)
|
public function buildPropertyPreg($named, $attributes)
|
||||||
{
|
{
|
||||||
if ($named) {
|
if ($named) {
|
||||||
$this->resultOffsets[ 'named' ] = $this->startOffset + 3;
|
$this->resultOffsets[ 'named' ] = $this->startOffset + 4;
|
||||||
$this->propertyPreg .= "([\$]smarty[.]{$this->tagName}[.]{$attributes['name']}[.](";
|
$this->propertyPreg .= "(([\$]smarty[.]{$this->tagName}[.]" . ($this->tagName === 'section' ? "|[\[]\s*" : '')
|
||||||
|
. "){$attributes['name']}[.](";
|
||||||
$properties = $this->nameProperties;
|
$properties = $this->nameProperties;
|
||||||
} else {
|
} else {
|
||||||
$this->resultOffsets[ 'item' ] = $this->startOffset + 3;
|
$this->resultOffsets[ 'item' ] = $this->startOffset + 3;
|
||||||
@ -161,6 +164,8 @@ class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Internal_Com
|
|||||||
* Find matches in all parent template source
|
* Find matches in all parent template source
|
||||||
*
|
*
|
||||||
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
* @param \Smarty_Internal_TemplateCompilerBase $compiler
|
||||||
|
*
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function matchParentTemplateSource(Smarty_Internal_TemplateCompilerBase $compiler)
|
public function matchParentTemplateSource(Smarty_Internal_TemplateCompilerBase $compiler)
|
||||||
{
|
{
|
||||||
@ -171,7 +176,7 @@ class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Internal_Com
|
|||||||
if ($compiler !== $nextCompiler) {
|
if ($compiler !== $nextCompiler) {
|
||||||
// get template source
|
// get template source
|
||||||
$_content = $nextCompiler->template->source->getContent();
|
$_content = $nextCompiler->template->source->getContent();
|
||||||
if ($_content != '') {
|
if ($_content !== '') {
|
||||||
// run pre filter if required
|
// run pre filter if required
|
||||||
if ((isset($nextCompiler->smarty->autoload_filters[ 'pre' ]) ||
|
if ((isset($nextCompiler->smarty->autoload_filters[ 'pre' ]) ||
|
||||||
isset($nextCompiler->smarty->registered_filters[ 'pre' ]))
|
isset($nextCompiler->smarty->registered_filters[ 'pre' ]))
|
||||||
|
@ -42,6 +42,8 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
|
|||||||
* @param string $function PHP function name
|
* @param string $function PHP function name
|
||||||
*
|
*
|
||||||
* @return string compiled code
|
* @return string compiled code
|
||||||
|
* @throws \SmartyCompilerException
|
||||||
|
* @throws \SmartyException
|
||||||
*/
|
*/
|
||||||
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter, $tag, $function)
|
public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter, $tag, $function)
|
||||||
{
|
{
|
||||||
@ -58,7 +60,7 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
|
|||||||
$_paramsArray[] = "'$_key'=>$_value";
|
$_paramsArray[] = "'$_key'=>$_value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$_params = 'array(' . implode(",", $_paramsArray) . ')';
|
$_params = 'array(' . implode(',', $_paramsArray) . ')';
|
||||||
// compile code
|
// compile code
|
||||||
$output = "{$function}({$_params},\$_smarty_tpl)";
|
$output = "{$function}({$_params},\$_smarty_tpl)";
|
||||||
if (!empty($parameter[ 'modifierlist' ])) {
|
if (!empty($parameter[ 'modifierlist' ])) {
|
||||||
@ -66,8 +68,6 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
|
|||||||
array('modifierlist' => $parameter[ 'modifierlist' ],
|
array('modifierlist' => $parameter[ 'modifierlist' ],
|
||||||
'value' => $output));
|
'value' => $output));
|
||||||
}
|
}
|
||||||
//Does tag create output
|
|
||||||
$compiler->has_output = true;
|
|
||||||
$output = "<?php echo {$output};?>\n";
|
$output = "<?php echo {$output};?>\n";
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user