From 566a42fb3f15ae671a9f045f8943b1bb68d39f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 7 Nov 2013 11:21:59 +0100 Subject: [PATCH 1/8] Adding renderers to form elements for Bootstrap 2.3 (retroported from 3.0) --- .../Mouf/Html/Widgets/Form/CheckboxField.php | 21 +++++++ .../Widgets/Form/CheckboxField__compact.php | 10 ++++ .../Html/Widgets/Form/CheckboxesField.php | 24 ++++++++ .../Html/Widgets/Form/FileUploaderField.php | 60 +++++++++++++++++++ .../Mouf/Html/Widgets/Form/InputField.php | 23 +++++++ .../Mouf/Html/Widgets/Form/RadioField.php | 11 ++++ .../Mouf/Html/Widgets/Form/RadiosField.php | 23 +++++++ .../Mouf/Html/Widgets/Form/SelectField.php | 23 +++++++ .../Mouf/Html/Widgets/Form/TextAreaField.php | 26 ++++++++ 9 files changed, 221 insertions(+) create mode 100644 src/templates/Mouf/Html/Widgets/Form/CheckboxField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/InputField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/RadioField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/RadiosField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/SelectField.php create mode 100644 src/templates/Mouf/Html/Widgets/Form/TextAreaField.php diff --git a/src/templates/Mouf/Html/Widgets/Form/CheckboxField.php b/src/templates/Mouf/Html/Widgets/Form/CheckboxField.php new file mode 100644 index 0000000..5fa12e7 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/CheckboxField.php @@ -0,0 +1,21 @@ + +
+ getLabel()->addClass('control-label'); + if($required) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getInput()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
\ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php b/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php new file mode 100644 index 0000000..8b29075 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php @@ -0,0 +1,10 @@ +
+ getLabel()->toHtml(); + $object->getInput()->toHtml(); + if($object->getHelpText()) { + $object->getHelpText()->toHtml(); + } + ?> +
\ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php b/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php new file mode 100644 index 0000000..d27e535 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php @@ -0,0 +1,24 @@ +
+ getLabel()->addClass('control-label'); + if($object->isRequired()) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getCheckboxes() as $checkbox) { + $checkbox->toHtml(); + } + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ \ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php b/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php new file mode 100644 index 0000000..5aa6837 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php @@ -0,0 +1,60 @@ +getFileList()) { + $scriptVals = array(); + $html = ''; + $i = 0; + foreach ($object->getFileList() as $value) { + if($value) { + $html .= ''; + $html .= ''; + $html .= ''; + $html .= ''; + + $paths = explode(DIRECTORY_SEPARATOR, $value); + $scriptVals[ROOT_URL.str_replace(DIRECTORY_SEPARATOR, "/", $value)] = $paths[count($paths) - 1]; + + $i ++; + } + } + + $html .= '
'; + $ext = substr($value, strrpos($value, '.') + 1); + $fileUrl = ROOT_URL.str_replace('\\', '/', $value); + if($ext == 'jpeg' || $ext == 'jpg' || $ext == 'gif' || $ext == 'png'){ + $html .= ' (link here)'; + }else + $html .= $value . "(link here)"; + $html .= ''; + $html .= 'remove'; + $html .= '
'; + $html .= '
'; + $html .= ' + '; +} +?> +
+ getLabel()->addClass('control-label'); + if($required) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getFileUploader()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ \ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/InputField.php b/src/templates/Mouf/Html/Widgets/Form/InputField.php new file mode 100644 index 0000000..b76d3c5 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/InputField.php @@ -0,0 +1,23 @@ +
+ getLabel()->addClass('control-label'); + if($object->isRequired()) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getInput()->addClass('form-control'); + $object->getInput()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ + diff --git a/src/templates/Mouf/Html/Widgets/Form/RadioField.php b/src/templates/Mouf/Html/Widgets/Form/RadioField.php new file mode 100644 index 0000000..a05b031 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/RadioField.php @@ -0,0 +1,11 @@ +
+ getInput()->toHtml(); + $object->getLabel()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
diff --git a/src/templates/Mouf/Html/Widgets/Form/RadiosField.php b/src/templates/Mouf/Html/Widgets/Form/RadiosField.php new file mode 100644 index 0000000..6c6e52e --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/RadiosField.php @@ -0,0 +1,23 @@ +
+ getLabel()->addClass('control-label'); + if($required) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getRadios() as $radio) { + $radio->toHtml(); + } + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
diff --git a/src/templates/Mouf/Html/Widgets/Form/SelectField.php b/src/templates/Mouf/Html/Widgets/Form/SelectField.php new file mode 100644 index 0000000..106b8e2 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/SelectField.php @@ -0,0 +1,23 @@ +
+ getLabel()->addClass('control-label'); + if($required) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getSelect()->addClass('form-control'); + $object->getSelect()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ + diff --git a/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php b/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php new file mode 100644 index 0000000..667416c --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php @@ -0,0 +1,26 @@ +
+ getLabel()->addClass('control-label'); + if($required) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getTextarea()->addClass('form-control'); + if($object->isRequired()) { + $object->getTextarea()->setRequired('required'); + } + $object->getTextarea()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ + From ec16af152d5125798dfd5e63224006d1fb28fbd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Apr 2014 17:35:51 +0200 Subject: [PATCH 2/8] Adding jqueryFileUploadField special template for Bootstrap --- .../JqueryFileUploadField.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/templates/Mouf/Html/Widgets/JqueryFileUpload/JqueryFileUploadField.php diff --git a/src/templates/Mouf/Html/Widgets/JqueryFileUpload/JqueryFileUploadField.php b/src/templates/Mouf/Html/Widgets/JqueryFileUpload/JqueryFileUploadField.php new file mode 100644 index 0000000..a65efb5 --- /dev/null +++ b/src/templates/Mouf/Html/Widgets/JqueryFileUpload/JqueryFileUploadField.php @@ -0,0 +1,23 @@ +
+getLabel()->addClass('control-label'); + if($object->isRequired()) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); + ?> +
+ getJqueryFileUploadWidget()->toHtml(); + if($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
+
+ \ No newline at end of file From 94390790e2015f270394e3e30b9b7798bac2319e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 27 Aug 2018 17:49:10 +0200 Subject: [PATCH 3/8] Moving to framework agnostic code --- .gitignore | 3 + .travis.yml | 16 ++++ composer.json | 35 ++++---- discovery.json | 3 + phpcs.xml.dist | 21 +++++ phpstan.neon | 5 ++ src/Mouf/Html/Template/BootstrapTemplate.php | 28 ++---- .../Template/Menus/BootstrapMenuRenderer.php | 85 ++++++++++--------- .../Html/Template/Menus/BootstrapNavBar.php | 52 ++++++------ 9 files changed, 151 insertions(+), 97 deletions(-) create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 discovery.json create mode 100644 phpcs.xml.dist create mode 100644 phpstan.neon diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..283dcd0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +composer.lock +vendor/ +mouf/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e262f81 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: php +matrix: + include: + - php: 7.2 + env: PREFER_LOWEST="" + - php: 7.1 + env: PREFER_LOWEST="" +# - php: 7.1 +# env: PREFER_LOWEST="--prefer-lowest" + +before_script: +- composer update $PREFER_LOWEST --no-interaction +- mkdir -p build/logs +script: +- composer cs-check +- composer phpstan diff --git a/composer.json b/composer.json index 0cd7e30..73ef593 100644 --- a/composer.json +++ b/composer.json @@ -19,26 +19,31 @@ "MIT" ], "require" : { - "mouf/html.utils.weblibrarymanager" : "~2.0", - "mouf/html.widgets.messageservice" : "~3.0", - "php" : ">=5.3.0", - "mouf/html.widgets.menu" : "2.*", - "mouf/html.template.templateinterface" : "~2.1", + "mouf/html.utils.weblibrarymanager" : "~4.0", + "mouf/html.widgets.messageservice" : "~4.0", + "php" : ">=7.1", + "mouf/html.widgets.menu" : "^4", + "mouf/html.template.templateinterface" : "^3", "mouf/html.utils.bootstrap" : "2.3.*" }, + "require-dev": { + "phpstan/phpstan": "^0.10.3", + "thecodingmachine/phpstan-strict-rules": "^0.10.3", + "squizlabs/php_codesniffer": "^3.3.1" + }, + "conflict": { + "mouf/mouf": "~2.0.0" + }, "autoload" : { "psr-0" : { "Mouf" : "src/" } }, - "extra" : { - "mouf" : { - "install" : [{ - "file" : "src/install.php", - "type" : "file" - } - ], - "logo" : "icons/logo.png" - } - } + "scripts": { + "cs-check": "phpcs", + "cs-fix": "phpcbf", + "phpstan": "phpstan analyse src/Mouf -c phpstan.neon --level=5 --no-progress -vvv" + }, + "minimum-stability": "dev", + "prefer-stable": true } \ No newline at end of file diff --git a/discovery.json b/discovery.json new file mode 100644 index 0000000..891b9d4 --- /dev/null +++ b/discovery.json @@ -0,0 +1,3 @@ +{ + "Interop\\Container\\ServiceProviderInterface": "Mouf\\Html\\Widgets\\Menu\\MenuRendererServiceProvider" +} diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..480486b --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,21 @@ + + + Expressive Skeleton coding standard + + + + + + + + + + src + + + + + + + + \ No newline at end of file diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..5d37516 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,5 @@ +#parameters: +# ignoreErrors: +# - "#you should not use the \\$_REQUEST superglobal#" +includes: + - vendor/thecodingmachine/phpstan-strict-rules/phpstan-strict-rules.neon \ No newline at end of file diff --git a/src/Mouf/Html/Template/BootstrapTemplate.php b/src/Mouf/Html/Template/BootstrapTemplate.php index f5bbf49..cc85e13 100644 --- a/src/Mouf/Html/Template/BootstrapTemplate.php +++ b/src/Mouf/Html/Template/BootstrapTemplate.php @@ -114,21 +114,12 @@ class BootstrapTemplate extends BaseTemplate { */ public $enableFluidLayout = false; - /** - * Default constructor - */ - public function __construct() { - parent::__construct(); - //$this->favIconUrl = self::TEMPLATE_ROOT_URL."images/favicon.png"; - //$this->logoUrl = self::TEMPLATE_ROOT_URL."images/logo.png"; - } - /** * Draws the template. */ public function toHtml(){ // Let's register the template renderer in the default renderer. - $this->getDefaultRenderer()->setTemplateRenderer($this->getTemplateRenderer()); + $this->getDefaultRenderer()->setTemplateRendererInstanceName($this->getTemplateRendererInstanceName()); header('Content-Type: text/html; charset=utf-8'); include __DIR__."/../../../../views/template.php"; @@ -140,7 +131,7 @@ public function toHtml(){ * @Property * @param HtmlElementInterface $left */ - public function setLeft(HtmlElementInterface $left) { + public function setLeft(HtmlElementInterface $left): void { $this->left = $left; } @@ -150,7 +141,7 @@ public function setLeft(HtmlElementInterface $left) { * @Property * @param HtmlElementInterface $right */ - public function setRight(HtmlElementInterface $right) { + public function setRight(HtmlElementInterface $right): void { $this->right = $right; } @@ -160,7 +151,7 @@ public function setRight(HtmlElementInterface $right) { * @Property * @param HtmlElementInterface $header */ - public function setHeader(HtmlElementInterface $header) { + public function setHeader(HtmlElementInterface $header): void { $this->header = $header; } @@ -170,7 +161,7 @@ public function setHeader(HtmlElementInterface $header) { * @Property * @param HtmlElementInterface $footer */ - public function setFooter(HtmlElementInterface $footer) { + public function setFooter(HtmlElementInterface $footer): void { $this->footer = $footer; } @@ -182,7 +173,7 @@ public function setFooter(HtmlElementInterface $footer) { * @Property * @param int $leftColumnSize */ - public function setLeftColumnSize($leftColumnSize) { + public function setLeftColumnSize(int $leftColumnSize): void { $this->leftColumnSize = $leftColumnSize; } @@ -194,7 +185,7 @@ public function setLeftColumnSize($leftColumnSize) { * @Property * @param int $rightColumnSize */ - public function setRightColumnSize($rightColumnSize) { + public function setRightColumnSize(int $rightColumnSize): void { $this->rightColumnSize = $rightColumnSize; } @@ -203,7 +194,7 @@ public function setRightColumnSize($rightColumnSize) { * * @param bool $wrapLeftSideBarInWell */ - public function setWrapLeftSideBarInWell($wrapLeftSideBarInWell) { + public function setWrapLeftSideBarInWell(bool $wrapLeftSideBarInWell): void { $this->wrapLeftSideBarInWell = $wrapLeftSideBarInWell; } @@ -212,9 +203,8 @@ public function setWrapLeftSideBarInWell($wrapLeftSideBarInWell) { * * @param bool $wrapRightSideBarInWell */ - public function setWrapRightSideBarInWell($wrapRightSideBarInWell) { + public function setWrapRightSideBarInWell(bool $wrapRightSideBarInWell): void { $this->wrapRightSideBarInWell = $wrapRightSideBarInWell; } } -?> \ No newline at end of file diff --git a/src/Mouf/Html/Template/Menus/BootstrapMenuRenderer.php b/src/Mouf/Html/Template/Menus/BootstrapMenuRenderer.php index 95ce96f..4060192 100644 --- a/src/Mouf/Html/Template/Menus/BootstrapMenuRenderer.php +++ b/src/Mouf/Html/Template/Menus/BootstrapMenuRenderer.php @@ -1,14 +1,15 @@ menu = $menu; } @@ -85,10 +86,17 @@ public function toHtml() { } - private function renderHtmlMenuItem(MenuItemInterface $menuItem, $level = 0) { + private function renderHtmlMenuItem(MenuItemInterface $menuItem, int $level = 0): void { if (!$menuItem->isHidden()) { - - $menuItemStyleIcon = $menuItem->getAdditionalStyleByType('Mouf\\Html\\Widgets\\Menu\\MenuItemStyleIcon'); + + + $menuItemStyleIcon = null; + foreach ($menuItem->getAdditionalStyles() as $additionalStyle) { + if ($additionalStyle instanceof MenuItemStyleIcon) { + $menuItemStyleIcon = $additionalStyle; + } + } + if($menuItemStyleIcon) { $img = ' '; } else { @@ -153,4 +161,3 @@ private function renderHtmlMenuItem(MenuItemInterface $menuItem, $level = 0) { } } -?> \ No newline at end of file diff --git a/src/Mouf/Html/Template/Menus/BootstrapNavBar.php b/src/Mouf/Html/Template/Menus/BootstrapNavBar.php index 2664752..ca51a75 100644 --- a/src/Mouf/Html/Template/Menus/BootstrapNavBar.php +++ b/src/Mouf/Html/Template/Menus/BootstrapNavBar.php @@ -1,12 +1,12 @@ $children */ - public function __construct($children = array()) { + public function __construct(array $children = array(), string $rootUrl = '/') { $this->children = $children; - } + $this->rootUrl = $rootUrl; + } public function toHtml() { echo ' \ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php b/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php index 8b29075..17bdd04 100644 --- a/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php +++ b/src/templates/Mouf/Html/Widgets/Form/CheckboxField__compact.php @@ -1,10 +1,10 @@
- getLabel()->toHtml(); - $object->getInput()->toHtml(); - if($object->getHelpText()) { - $object->getHelpText()->toHtml(); - } - ?> + getLabel()->toHtml(); + $object->getInput()->toHtml(); + if ($object->getHelpText()) { + $object->getHelpText()->toHtml(); + } + ?>
\ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php b/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php index d27e535..f75b83c 100644 --- a/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php +++ b/src/templates/Mouf/Html/Widgets/Form/CheckboxesField.php @@ -1,24 +1,24 @@
- getLabel()->addClass('control-label'); - if($object->isRequired()) { - $object->getLabel()->addText('*'); - } - $object->getLabel()->toHtml(); + $object->getLabel()->addClass('control-label'); + if ($object->isRequired()) { + $object->getLabel()->addText('*'); + } + $object->getLabel()->toHtml(); ?>
- getCheckboxes() as $checkbox) { - $checkbox->toHtml(); - } - if($object->getHelpText()) { - ?> - getHelpText()->toHtml() ?> - -
+ getCheckboxes() as $checkbox) { + $checkbox->toHtml(); + } + if ($object->getHelpText()) { + ?> + getHelpText()->toHtml() ?> + +
- \ No newline at end of file + \ No newline at end of file diff --git a/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php b/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php index 5aa6837..770c574 100644 --- a/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php +++ b/src/templates/Mouf/Html/Widgets/Form/FileUploaderField.php @@ -1,35 +1,36 @@ getFileList()) { - $scriptVals = array(); - $html = ''; - $i = 0; - foreach ($object->getFileList() as $value) { - if($value) { - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - - $paths = explode(DIRECTORY_SEPARATOR, $value); - $scriptVals[ROOT_URL.str_replace(DIRECTORY_SEPARATOR, "/", $value)] = $paths[count($paths) - 1]; - - $i ++; - } - } - - $html .= '
'; - $ext = substr($value, strrpos($value, '.') + 1); - $fileUrl = ROOT_URL.str_replace('\\', '/', $value); - if($ext == 'jpeg' || $ext == 'jpg' || $ext == 'gif' || $ext == 'png'){ - $html .= ' (link here)'; - }else - $html .= $value . "(link here)"; - $html .= ''; - $html .= 'remove'; - $html .= '
'; - $html .= '
'; - $html .= ' +if ($object->getFileList()) { + $scriptVals = array(); + $html = ''; + $i = 0; + foreach ($object->getFileList() as $value) { + if ($value) { + $html .= ''; + $html .= ''; + $html .= ''; + $html .= ''; + + $paths = explode(DIRECTORY_SEPARATOR, $value); + $scriptVals[ROOT_URL.str_replace(DIRECTORY_SEPARATOR, "/", $value)] = $paths[count($paths) - 1]; + + $i ++; + } + } + + $html .= '
'; + $ext = substr($value, strrpos($value, '.') + 1); + $fileUrl = ROOT_URL.str_replace('\\', '/', $value); + if ($ext == 'jpeg' || $ext == 'jpg' || $ext == 'gif' || $ext == 'png') { + $html .= ' (link here)'; + } else { + $html .= $value . "(link here)"; + } + $html .= ''; + $html .= 'remove'; + $html .= '
'; + $html .= '
'; + $html .= ' - +
+ + - + diff --git a/src/templates/Mouf/Html/Widgets/Form/InputField.php b/src/templates/Mouf/Html/Widgets/Form/InputField.php index 314725e..b372bc2 100644 --- a/src/templates/Mouf/Html/Widgets/Form/InputField.php +++ b/src/templates/Mouf/Html/Widgets/Form/InputField.php @@ -1,6 +1,7 @@ getInput()->getName()?>"> getLabel()->addClass("col-lg-".$labelRatio); - } + if ($inline) { + $object->getLabel()->addClass("col-lg-".$labelRatio); + } $object->getLabel()->addClass('control-label'); - if ($object->isRequired()) { - $object->getLabel()->addText('*'); - } + if ($object->isRequired()) { + $object->getLabel()->addText('*'); + } $object->getLabel()->toHtml(); ?>
"> - getInput()->addClass('form-control'); $object->getInput()->toHtml(); - if ($object->getHelpText()) { - ?> - getHelpText()->toHtml() ?> - getHelpText()) { + ?> + getHelpText()->toHtml() ?> + -
+ diff --git a/src/templates/Mouf/Html/Widgets/Form/MultiSelectField.php b/src/templates/Mouf/Html/Widgets/Form/MultiSelectField.php index 8b2f7fb..3528d36 100644 --- a/src/templates/Mouf/Html/Widgets/Form/MultiSelectField.php +++ b/src/templates/Mouf/Html/Widgets/Form/MultiSelectField.php @@ -1,5 +1,6 @@
@@ -7,43 +8,42 @@ /* @var $object Mouf\Html\Widgets\Form\TextField */ $object->getLabel()->addClass('col-lg-4'); $object->getLabel()->addClass('control-label'); - if ($object->isRequired()) { - $object->getLabel()->addText('*'); - } + if ($object->isRequired()) { + $object->getLabel()->addText('*'); + } $object->getLabel()->toHtml(); ?>
- getSelects() as $select) { - /* @var $select Select */ - $select->addClass('form-control mouf-multiple-select-list'); - $select->toHtml(); - $showRemove = true; - if ($first) { - $first = false; - if ($object->isRequired()) { - $showRemove = false; - } - } - if ($showRemove) { - $removeElem = $object->getRemoveElement(); - $removeElem->addDataAttribute('target', $select->getDataAttributes()['id']); - $removeElem->addClass("mouf-remove-dd-item")->addClass('glyphicon glyphicon-remove'); - $removeElem->toHtml(); + foreach ($object->getSelects() as $select) { + /* @var $select Select */ + $select->addClass('form-control mouf-multiple-select-list'); + $select->toHtml(); + $showRemove = true; + if ($first) { + $first = false; + if ($object->isRequired()) { + $showRemove = false; } } - - if ($object->getHelpText()) { - ?> - getHelpText()->toHtml() ?> - getRemoveElement(); + $removeElem->addDataAttribute('target', $select->getDataAttributes()['id']); + $removeElem->addClass("mouf-remove-dd-item")->addClass('glyphicon glyphicon-remove'); + $removeElem->toHtml(); } + } + if ($object->getHelpText()) { ?> -
- + var $addButton = $('.mouf-add-dd-item'); + $addButton.unbind('click'); + $addButton.click(function(){ + var index = parseInt($(this).data('next')); + var selector = $(this).attr('data-target'); + var template = $('#'+selector); + var html = template.html(); + html = html.replace(new RegExp('mouftemplate', 'g'), index); + html = html.replace("data-name", "name"); + template.before(html); + $(this).data('next', index + 1 ); + $(this).attr('data-next', index + 1 ); + }); + //--> +
diff --git a/src/templates/Mouf/Html/Widgets/Form/RadioField.php b/src/templates/Mouf/Html/Widgets/Form/RadioField.php index b374818..6f2571a 100644 --- a/src/templates/Mouf/Html/Widgets/Form/RadioField.php +++ b/src/templates/Mouf/Html/Widgets/Form/RadioField.php @@ -1,12 +1,11 @@
- getInput()->toHtml(); $object->getLabel()->toHtml(); if ($object->getHelpText()) { ?> - getHelpText()->toHtml() ?> - getHelpText()->toHtml() ?> +
diff --git a/src/templates/Mouf/Html/Widgets/Form/RadiosField.php b/src/templates/Mouf/Html/Widgets/Form/RadiosField.php index 8a76d68..504adab 100644 --- a/src/templates/Mouf/Html/Widgets/Form/RadiosField.php +++ b/src/templates/Mouf/Html/Widgets/Form/RadiosField.php @@ -1,5 +1,5 @@
- getLabel()->addClass('col-lg-4'); @@ -10,16 +10,15 @@ $object->getLabel()->toHtml(); ?>
- getRadios() as $radio) { $radio->toHtml(); } if ($object->getHelpText()) { ?> - getHelpText()->toHtml() ?> - getHelpText()->toHtml() ?> + -
+
diff --git a/src/templates/Mouf/Html/Widgets/Form/SelectField.php b/src/templates/Mouf/Html/Widgets/Form/SelectField.php index ce39e51..d91d8ba 100644 --- a/src/templates/Mouf/Html/Widgets/Form/SelectField.php +++ b/src/templates/Mouf/Html/Widgets/Form/SelectField.php @@ -1,6 +1,7 @@ getSelect()->getName() ?>"> getLabel()->addClass("col-lg-".$labelRatio); - } + if ($inline) { + $object->getLabel()->addClass("col-lg-".$labelRatio); + } $object->getLabel()->addClass('control-label'); - if ($required) { - $object->getLabel()->addText('*'); - } + if ($required) { + $object->getLabel()->addText('*'); + } $object->getLabel()->toHtml(); ?>
"> - getSelect()->addClass('form-control'); $object->getSelect()->toHtml(); - if ($object->getHelpText()) { - ?> - getHelpText()->toHtml() ?> - getHelpText()) { + ?> + getHelpText()->toHtml() ?> + -
+ diff --git a/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php b/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php index c6fdcb1..23fe186 100644 --- a/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php +++ b/src/templates/Mouf/Html/Widgets/Form/TextAreaField.php @@ -1,6 +1,7 @@ getTextarea()->getName() ?>"> getLabel()->addClass("col-lg-".$labelRatio); - } + if ($inline) { + $object->getLabel()->addClass("col-lg-".$labelRatio); + } $object->getLabel()->addClass('control-label'); - if ($required) { - $object->getLabel()->addText('*'); - } + if ($required) { + $object->getLabel()->addText('*'); + } $object->getLabel()->toHtml(); ?>
"> - getTextarea()->addClass('form-control'); - if ($object->isRequired()) { - $object->getTextarea()->setRequired('required'); - } + if ($object->isRequired()) { + $object->getTextarea()->setRequired('required'); + } $object->getTextarea()->toHtml(); - if ($object->getHelpText()) { - ?> - getHelpText()->toHtml() ?> - getHelpText()) { + ?> + getHelpText()->toHtml() ?> + -
+ From 11ec59b01d091290f181242fa4ac605f45741441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 18 Oct 2018 18:26:15 +0200 Subject: [PATCH 7/8] Removing dependency on composer bootstrap/jquery --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index b0fcb33..9310e46 100644 --- a/composer.json +++ b/composer.json @@ -20,8 +20,7 @@ "mouf/html.widgets.messageservice" : "~4.0", "php" : ">=7.1", "mouf/html.widgets.menu" : "^4", - "mouf/html.template.templateinterface" : "^3", - "mouf/html.utils.bootstrap" : "2.3.*" + "mouf/html.template.templateinterface" : "^3" }, "require-dev": { "phpstan/phpstan": "^0.10.3", From 67e31e35c384804d0412273d799c09581a68f98d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 18 Oct 2018 18:26:57 +0200 Subject: [PATCH 8/8] Improving README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0efc1a..05e50fc 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Bootstrap version | Template version 3.* | 4.0 3.* | 4.1 4.* | 5.0 +4.* | 5.1 (uses Service providers instead of Mouf installer) Bootstrap menu rendererer -------------------------