diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..288766c
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,10 @@
+.check-author.yml export-ignore
+.gitattributes export-ignore
+.gitignore export-ignore
+.travis.yml export-ignore
+travis.php.ini export-ignore
+build.default.properties export-ignore
+build.xml export-ignore
+phpunit.xml.dist export-ignore
+/.github export-ignore
+/tests export-ignore
\ No newline at end of file
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..56f89c3
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,66 @@
+# How to contribute
+
+We are really glad you're reading this, because we need volunteer developers to
+help this project come to fruition.
+
+If you haven't already, come find us in IRC (#contao.mm on freenode).
+We want you working on things you're excited about.
+
+The following is a set of guidelines for contributing to MetaModels and its
+packages, which are hosted in the [MetaModels organization][1] on GitHub. These
+are just guidelines, not rules, use your best judgement and feel free to
+propose changes to this document in a pull request.
+
+## Submitting issues
+
+* Use the search function to see if a similar issue has already been submitted.
+* Describe the issue in detail and include all the steps to follow in order to
+ reproduce the bug.
+* Include the version of Contao, PHP and MetaModels you are using (if possible
+ with a detailed list of other installed extensions that might be related).
+* Include screenshots or screencasts if possible; they are immensely helpful.
+* If you are reporting a bug, please include any related error message you are
+ seeing and also check the `system/logs/error.log` file. The error message is
+ not just the message but also the complete(!) stack trace below the message.
+ This trace is a long list of function calls which helps us to diagnose the
+ problem en detail.
+
+## Submitting changes
+
+* Please send a [GitHub Pull Request to MetaModels][1] with a clear list of what
+ you've done (read more about [pull requests][2]).
+* When you send a pull request, we will love you forever if you include
+ phpunit tests. We can always use more test coverage.
+* Please follow the [phpcq 2.0][3] coding standards.
+* Please make sure all of your commits are atomic (only one feature or fix per
+ commit).
+* We use phpcq/all-tasks in these projects, so please check your changes
+ using phpcq when submitting a pull request.
+* Create your pull request against the [`master`][4] branch for bug fixes or the
+ [`develop`][5] branch for new features.
+* Include screenshots in your pull request whenever possible.
+
+Always write a clear log message for your commits.
+One-line messages are fine for small changes, but bigger changes should look
+like this:
+
+ $ git commit -m "A brief summary of the commit
+ >
+ > A paragraph describing what changed and its impact."
+
+## Testing
+
+We have a handful of unit tests. Please write unit tests for new code you
+create.
+
+## Git commit messages
+
+* Use the present tense ("Add feature" not "Added feature").
+* Use the imperative mood ("Move cursor to …" not "Moves cursor to …").
+* Reference issues and pull requests liberally.
+
+[1]: https://github.com/MetaModels
+[2]: http://help.github.com/pull-requests/
+[3]: https://github.com/phpcq/coding-standard
+[4]: https://github.com/MetaModels/attribute_tabletext/pull/new/master
+[5]: https://github.com/MetaModels/attribute_tabletext/pull/new/develop
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..67449ab
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,43 @@
+## Checklist before I submit this issue report
+
+I confirm that:
+- [ ] I have tested this with the latest version available
+- [ ] I have read documentation @ http://metamodels.readthedocs.org/en/ or http://metamodels.readthedocs.org/de/
+- [ ] I have checked the Contao community forums for references https://community.contao.org/
+- [ ] I have checked existing issues for duplicates and found none @ https://github.com/MetaModels/attribute_tabletext/issues?q=is%3Aissue
+
+## My environment is:
+
+(Please fill in the actual values from your environment)
+
+| Key | Value | Comments |
+| ----------------------------------- | ---------| ---------------------------------|
+| PHP version: | | |
+| Contao version: | | |
+| MetaModels version core: | | |
+| MetaModels version attribute: | | |
+| Installation via composer: | (yes/no) | |
+| Installed MetaModels packages: | | |
+| DCG version: | | |
+
+## Issue description
+
+(Describe the problem you are having)
+
+## Steps to reproduce
+
+1. [First Step]
+2. [Second Step]
+3. [and so on…]
+
+## Describe the behaviour of the application
+
+(Tell us what happens)
+
+## Describe the expected behaviour of the application
+
+(Tell us what should have happened)
+
+## Screenshots
+
+(Add some visual love or even a video if you can)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..ac28856
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,12 @@
+## Description
+
+Please explain the detailed changes you made here.
+Reference any issue number this pull request fixes.
+
+## Checklist
+- [ ] Read and understood the [CONTRIBUTING guidelines](CONTRIBUTING.md)
+- [ ] Created tests, if possible
+- [ ] All tests passing
+- [ ] Extended the README / documentation, if necessary
+- [ ] Added myself to the `@authors` in touched PHP files
+- [ ] Checked the changes with phpcq and introduced no new issues
diff --git a/.travis.yml b/.travis.yml
index 55c0be9..f5e1d4e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,25 +1,25 @@
language: php
php:
- - 5.3
- - 5.4
- - 5.5
- - 5.6
+ - "5.4"
+ - "5.5"
+ - "5.6"
+ - "7.0"
+ - "7.1"
env:
- - CONTAO_VERSION=~3.2.0
- - CONTAO_VERSION=~3.3.0
- - CONTAO_VERSION=~3.4.0
- - CONTAO_VERSION=~3.5.0
+ - CONTAO_VERSION=~3.5.5
+
# Exclude impossible Contao Version combinations.
matrix:
exclude:
- - php: 5.3
- env: CONTAO_VERSION=~3.5.0
sudo: false
+before_install:
+ - phpenv config-add travis.php.ini
+
install:
- travis_retry composer self-update && composer --version
- travis_retry composer require contao/core $CONTAO_VERSION --no-update
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..6600f1c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,165 @@
+GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/composer.json b/composer.json
index 5490fcd..5e92777 100644
--- a/composer.json
+++ b/composer.json
@@ -33,10 +33,10 @@
"source": "https://github.com/MetaModels/attribute_tabletext"
},
"require": {
- "php": ">=5.3",
- "contao/core": ">=3.2,<3.6",
- "contao-community-alliance/composer-plugin": "~2.0",
- "metamodels/core": "~2.0"
+ "php": ">=5.4",
+ "contao/core": "^3.5.5",
+ "contao-community-alliance/composer-plugin": "~2.0@beta",
+ "metamodels/core": "~2.0@alpha"
},
"require-dev": {
"cyberspectrum/contao-toolbox": "~0.6",
@@ -73,6 +73,5 @@
"dev-develop": "2.1.x-dev"
}
},
- "minimum-stability": "dev",
"prefer-stable": true
}
diff --git a/contao/config/autoload.php b/contao/config/autoload.php
index 1f0b1d5..822a4a2 100644
--- a/contao/config/autoload.php
+++ b/contao/config/autoload.php
@@ -1,20 +1,23 @@
- * @author Andreas Isaak
- * @author David Maack
- * @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @author David Greminger
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/config/database.sql b/contao/config/database.sql
index 8080e49..2c35c70 100644
--- a/contao/config/database.sql
+++ b/contao/config/database.sql
@@ -30,4 +30,12 @@ CREATE TABLE `tl_metamodel_tabletext` (
CREATE TABLE `tl_metamodel_attribute` (
`tabletext_cols` blob NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Table `tl_metamodel_rendersetting`
+--
+
+CREATE TABLE `tl_metamodel_rendersetting` (
+ `tabletext_hide_tablehead` varchar(1) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
\ No newline at end of file
diff --git a/contao/config/event_listeners.php b/contao/config/event_listeners.php
index 0d121b4..5f0f014 100644
--- a/contao/config/event_listeners.php
+++ b/contao/config/event_listeners.php
@@ -1,17 +1,20 @@
- * @copyright The MetaModels team.
- * @license LGPL.
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/dca/tl_metamodel_attribute.php b/contao/dca/tl_metamodel_attribute.php
index 400745e..29a03d7 100644
--- a/contao/dca/tl_metamodel_attribute.php
+++ b/contao/dca/tl_metamodel_attribute.php
@@ -1,20 +1,23 @@
- * @author Andreas Isaak
- * @author David Maack
- * @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @author David Greminger
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/dca/tl_metamodel_dcasetting.php b/contao/dca/tl_metamodel_dcasetting.php
index 6f90fb0..3194b9f 100644
--- a/contao/dca/tl_metamodel_dcasetting.php
+++ b/contao/dca/tl_metamodel_dcasetting.php
@@ -1,20 +1,23 @@
- * @author Andreas Isaak
- * @author David Greminger
- * @author David Maack
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @author David Greminger
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/dca/tl_metamodel_filtersetting.php b/contao/dca/tl_metamodel_filtersetting.php
index abba68d..409a1ee 100644
--- a/contao/dca/tl_metamodel_filtersetting.php
+++ b/contao/dca/tl_metamodel_filtersetting.php
@@ -1,20 +1,22 @@
- * @author Andreas Isaak
- * @author David Greminger
- * @author David Maack
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/dca/tl_metamodel_rendersetting.php b/contao/dca/tl_metamodel_rendersetting.php
index 5544580..8eef6a4 100644
--- a/contao/dca/tl_metamodel_rendersetting.php
+++ b/contao/dca/tl_metamodel_rendersetting.php
@@ -1,21 +1,40 @@
- * @author Andreas Isaak
- * @author David Maack
- * @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @author David Greminger
+ * @author Ingolf Steinhardt
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
-$GLOBALS['TL_DCA']['tl_metamodel_rendersetting']['metapalettes']['tabletext extends default'] = array();
+$GLOBALS['TL_DCA']['tl_metamodel_rendersetting']['metapalettes']['tabletext extends default'] = array
+(
+ '+advanced' => array('tabletext_hide_tablehead'),
+);
+
+
+$GLOBALS['TL_DCA']['tl_metamodel_rendersetting']['fields']['tabletext_hide_tablehead'] = array
+(
+ 'label' => &$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['tabletext_hide_tablehead'],
+ 'exclude' => true,
+ 'inputType' => 'checkbox',
+ 'eval' => array
+ (
+ 'tl_class' => 'clr w50'
+ )
+);
diff --git a/contao/languages/en/tl_metamodel_attribute.php b/contao/languages/en/tl_metamodel_attribute.php
index 3684c9c..6b2fad4 100644
--- a/contao/languages/en/tl_metamodel_attribute.php
+++ b/contao/languages/en/tl_metamodel_attribute.php
@@ -1,17 +1,20 @@
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author David Maack
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/contao/languages/en/tl_metamodel_rendersetting.php b/contao/languages/en/tl_metamodel_rendersetting.php
new file mode 100644
index 0000000..237ebf8
--- /dev/null
+++ b/contao/languages/en/tl_metamodel_rendersetting.php
@@ -0,0 +1,21 @@
+
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
+ * @filesource
+ */
+
+$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['tabletext_hide_tablehead'] = array('Hide tablehead', 'Select to hide the head of the table.');
\ No newline at end of file
diff --git a/contao/templates/mm_attr_tabletext.html5 b/contao/templates/mm_attr_tabletext.html5
index 55ce8dd..755c952 100644
--- a/contao/templates/mm_attr_tabletext.html5
+++ b/contao/templates/mm_attr_tabletext.html5
@@ -1,5 +1,21 @@
+
- raw as $k => $row) : ?>
- $col): ?> |
-
-
+attribute->get('tabletext_cols')); if (!$this->settings->get('tabletext_hide_tablehead')) : ?>
+
+
+ attribute->get('tabletext_cols')) ? $this->attribute->get('tabletext_cols'): array() as $headCol) : ?>
+ | = $headCol['rowLabel'] ?> |
+
+
+
+
+
+ raw) ? $this->raw : array() as $k => $row) : ?>
+
+
+ |
+
+
+
+
+
\ No newline at end of file
diff --git a/contao/templates/mm_attr_tabletext.text b/contao/templates/mm_attr_tabletext.text
index b94ec9b..104483b 100644
--- a/contao/templates/mm_attr_tabletext.text
+++ b/contao/templates/mm_attr_tabletext.text
@@ -1,7 +1,7 @@
raw as $k => $row)
+foreach (is_array($this->raw) ? $this->raw : array() as $k => $row)
{
- foreach ($row as $kk => $col)
+ foreach (is_array($row) ? $row : array() as $kk => $col)
{
echo (($kk !=0) ? ' ': '' ).$col['value'];
}
diff --git a/contao/templates/mm_attr_tabletext.xhtml b/contao/templates/mm_attr_tabletext.xhtml
index 55ce8dd..cc634fd 100644
--- a/contao/templates/mm_attr_tabletext.xhtml
+++ b/contao/templates/mm_attr_tabletext.xhtml
@@ -1,5 +1,20 @@
+
- raw as $k => $row) : ?>
- $col): ?> |
-
-
+attribute->get('tabletext_cols')); if (!$this->settings->get('tabletext_hide_tablehead')) : ?>
+
+
+ attribute->get('tabletext_cols')) ? $this->attribute->get('tabletext_cols'): array() as $countCol => $headCol) : ?>
+ | = $headCol['rowLabel'] ?> |
+
+
+
+
+ raw) ? $this->raw : array() as $k => $row) : ?>
+
+
+ |
+
+
+
+
+
\ No newline at end of file
diff --git a/src/MetaModels/Attribute/TableText/AttributeTypeFactory.php b/src/MetaModels/Attribute/TableText/AttributeTypeFactory.php
index 04feeae..bc88868 100644
--- a/src/MetaModels/Attribute/TableText/AttributeTypeFactory.php
+++ b/src/MetaModels/Attribute/TableText/AttributeTypeFactory.php
@@ -1,17 +1,20 @@
- * @copyright The MetaModels team.
- * @license LGPL-3+
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/src/MetaModels/Attribute/TableText/TableText.php b/src/MetaModels/Attribute/TableText/TableText.php
index 4c93b2b..b44ccdb 100644
--- a/src/MetaModels/Attribute/TableText/TableText.php
+++ b/src/MetaModels/Attribute/TableText/TableText.php
@@ -1,21 +1,25 @@
- * @author Andreas Isaak
- * @author David Maack
- * @author David Greminger
- * @author Stefan Heimes
- * @copyright The MetaModels team.
- * @license LGPL.
+ * (c) 2012-2016 The MetaModels team.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * This project is provided in good faith and hope to be usable by anyone.
+ *
+ * @package MetaModels
+ * @subpackage AttributeTableText
+ * @author Christian Schiffler
+ * @author Andreas Isaak
+ * @author David Maack
+ * @author David Greminger
+ * @author Stefan Heimes
+ * @author Ingolf Steinhardt
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_translatedurl/blob/master/LICENSE LGPL-3.0
* @filesource
*/
@@ -85,8 +89,8 @@ public function getFieldDefinition($arrOverrides = array())
$arrFieldDef['inputType'] = 'multiColumnWizard';
$arrFieldDef['eval']['columnFields'] = array();
- $count = count($arrColLabels);
- for ($i = 0; $i < $count; $i++) {
+ $countCol = count($arrColLabels);
+ for ($i = 0; $i < $countCol; $i++) {
$arrFieldDef['eval']['columnFields']['col_' . $i] = array(
'label' => $arrColLabels[$i]['rowLabel'],
'inputType' => 'text',
@@ -115,44 +119,24 @@ public function setDataFor($arrValues)
$arrIds = array_keys($arrValues);
$objDB = $this->getMetaModel()->getServiceContainer()->getDatabase();
- $strQueryUpdate = 'UPDATE %s';
+ // Reset all data for the ids.
+ $this->unsetDataFor($arrIds);
// Insert or update the cells.
- $strQuery = 'INSERT INTO ' . $this->getValueTable() . ' %s';
- foreach ($arrIds as $intId) {
- // Delete missing rows.
- if (empty($arrValues[$intId])) {
- // No values give, delete all values.
- $objDB
- ->prepare(sprintf('DELETE FROM %1$s WHERE att_id=? AND item_id=?', $this->getValueTable()))
- ->execute($this->get('id'), $intId);
-
- continue;
- }
-
- // We have some values, delete the missing ones.
- $rowIds = array_keys($arrValues[$intId]);
- $objDB
- ->prepare(
- sprintf(
- 'DELETE
- FROM %1$s
- WHERE att_id=?
- AND item_id=?
- AND row NOT IN (%2$s)',
- $this->getValueTable(),
- implode(',', $rowIds)
- )
- )
- ->execute($this->get('id'), $intId);
+ $strQueryUpdate = 'UPDATE %s';
+ $strQueryInsert = 'INSERT INTO ' . $this->getValueTable() . ' %s';
+ foreach ($arrIds as $intId) {
// Walk every row.
foreach ($arrValues[$intId] as $row) {
// Walk every column and update / insert the value.
foreach ($row as $col) {
+ if (empty($this->getSetValues($col, $intId)['value'])) {
+ continue;
+ }
$objDB
->prepare(
- $strQuery .
+ $strQueryInsert .
' ON DUPLICATE KEY ' .
str_replace(
'SET ',
@@ -319,10 +303,15 @@ public function valueToWidget($varValue)
return array();
}
- $widgetValue = array();
- foreach ($varValue as $row) {
- foreach ($row as $key => $col) {
- $widgetValue[$col['row']]['col_' . $key] = $col['value'];
+ $arrColLabels = deserialize($this->get('tabletext_cols'), true);
+ $countCol = count($arrColLabels);
+
+ $widgetValue = array();
+
+ foreach ($varValue as $k => $row) {
+ for ($kk = 0; $kk < $countCol; $kk++) {
+ $i = array_search($kk, array_column($row, 'col'));
+ $widgetValue[$k]['col_' . $kk] = ($i !== false) ? $row[$i]['value'] : '';
}
}
@@ -339,14 +328,17 @@ public function widgetToValue($varValue, $itemId)
}
$newValue = array();
+ // Start row numerator at 0.
+ $intRow = 0;
foreach ($varValue as $k => $row) {
foreach ($row as $kk => $col) {
$kk = str_replace('col_', '', $kk);
$newValue[$k][$kk]['value'] = $col;
$newValue[$k][$kk]['col'] = $kk;
- $newValue[$k][$kk]['row'] = $k;
+ $newValue[$k][$kk]['row'] = $intRow;
}
+ $intRow++;
}
return $newValue;
diff --git a/tests/MetaModels/Test/Attribute/TableText/TableTextAttributeTypeFactoryTest.php b/tests/MetaModels/Test/Attribute/TableText/TableTextAttributeTypeFactoryTest.php
index 6aae4d9..39b4b88 100644
--- a/tests/MetaModels/Test/Attribute/TableText/TableTextAttributeTypeFactoryTest.php
+++ b/tests/MetaModels/Test/Attribute/TableText/TableTextAttributeTypeFactoryTest.php
@@ -1,18 +1,21 @@
* @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL-3+
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/tests/MetaModels/Test/Attribute/TableText/TableTextTest.php b/tests/MetaModels/Test/Attribute/TableText/TableTextTest.php
index 090ab96..eb94392 100644
--- a/tests/MetaModels/Test/Attribute/TableText/TableTextTest.php
+++ b/tests/MetaModels/Test/Attribute/TableText/TableTextTest.php
@@ -1,18 +1,21 @@
* @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL.
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index e9bae8f..cb67372 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -1,17 +1,20 @@
- * @author David Greminger
- * @copyright The MetaModels team.
- * @license LGPL.
+ * @copyright 2012-2016 The MetaModels team.
+ * @license https://github.com/MetaModels/attribute_tabletext/blob/master/LICENSE LGPL-3.0
* @filesource
*/
diff --git a/travis.php.ini b/travis.php.ini
new file mode 100644
index 0000000..2a30f41
--- /dev/null
+++ b/travis.php.ini
@@ -0,0 +1 @@
+memory_limit = 2G