From 6960319ec96081b44db23fb2b85570ea8d42a6fa Mon Sep 17 00:00:00 2001 From: Ingolf Steinhardt Date: Sat, 17 Dec 2016 00:13:51 +0100 Subject: [PATCH 1/2] Hotfix #15 clear empty rows at database --- .../Attribute/TableText/TableText.php | 92 +++++++++---------- 1 file changed, 42 insertions(+), 50 deletions(-) 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; From 54c78d6827ea940adbff828e4f0d72dc763de4a5 Mon Sep 17 00:00:00 2001 From: Ingolf Steinhardt Date: Thu, 22 Dec 2016 11:03:38 +0100 Subject: [PATCH 2/2] add checkbox "hide table head", new templates and files for finalize 2.0.0 - fixed issues #14, #15, #16 --- .gitattributes | 10 ++ .github/CONTRIBUTING.md | 66 +++++++ .github/ISSUE_TEMPLATE.md | 43 +++++ .github/PULL_REQUEST_TEMPLATE.md | 12 ++ .travis.yml | 20 +-- LICENSE | 165 ++++++++++++++++++ composer.json | 9 +- contao/config/autoload.php | 29 +-- contao/config/database.sql | 8 + contao/config/event_listeners.php | 19 +- contao/dca/tl_metamodel_attribute.php | 29 +-- contao/dca/tl_metamodel_dcasetting.php | 29 +-- contao/dca/tl_metamodel_filtersetting.php | 28 +-- contao/dca/tl_metamodel_rendersetting.php | 47 +++-- .../languages/en/tl_metamodel_attribute.php | 23 +-- .../en/tl_metamodel_rendersetting.php | 21 +++ contao/templates/mm_attr_tabletext.html5 | 24 ++- contao/templates/mm_attr_tabletext.text | 4 +- contao/templates/mm_attr_tabletext.xhtml | 23 ++- .../TableText/AttributeTypeFactory.php | 17 +- .../TableTextAttributeTypeFactoryTest.php | 19 +- .../Attribute/TableText/TableTextTest.php | 19 +- tests/bootstrap.php | 21 ++- travis.php.ini | 1 + 24 files changed, 545 insertions(+), 141 deletions(-) create mode 100644 .gitattributes create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 LICENSE create mode 100644 contao/languages/en/tl_metamodel_rendersetting.php create mode 100644 travis.php.ini 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) : ?> + + + + + + + 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) : ?> + + + + + + 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/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