Code Monkey home page Code Monkey logo

craft-odds-and-ends's People

Contributors

jamie-s-white avatar joshainsworth avatar kbergha avatar nav33d avatar nickthompson1993 avatar ttempleton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

craft-odds-and-ends's Issues

Exception in Width field

Hi. While working on a PR we've discussed in #24, I stumbled upon a issue with the Width field.

I'm getting an exception every time I'm going to edit or create a new field under /admin/settings/fields in the control panel:

Firefox_Screenshot_2023-03-21T13-57-36 319Z

yii\base\ErrorException: 
Declaration of spicyweb\oddsandends\fields\Width::translatedOptions(bool $encode = false): array 
must be compatible with 
craft\fields\BaseOptionsField::translatedOptions(bool $encode = false, mixed $value = null, ?craft\base\ElementInterface $element = null): array
in /app/vendor/spicyweb/craft-odds-and-ends/src/fields/Width.php:206

Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}

(I added some line breaks to make it more readable)

Running:
Craft Pro 4.4.4
Odds & Ends 4.1.2
PHP: 8.2.3

Missing js and css

I installed the news version but I still have thoses 404 on plugin resources
screen shot 2015-09-13 at 23 34 41

Craft 3

Hi there, any plans for Craft 3 support? Would you be open to a pull request (if you would like to continue maintaining things)?

Cannot use object of type supercool\tools\fields\data\WidthData as array in Craft 3.3

Hi, I think this is a Tools issue and not SuperTable, but let me know if I'm wrong.

I'm using the Width field inside of a SuperTable field on a multi-site install. After I change the propagation method on the SuperTable field (since Craft 3.3), I can no longer save my entries and get the following error:

Error: Cannot use object of type supercool\tools\fields\data\WidthData as array in /Users/trav/Websites/louderthanten/vendor/supercool/tools/src/fields/data/WidthData.php:134
Stack trace:
#0 /Users/trav/Websites/louderthanten/vendor/supercool/tools/src/fields/Width.php(136): supercool\tools\fields\data\WidthData->setData(Array, Object(supercool\tools\fields\data\WidthData))
#1 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/base/Element.php(2270): supercool\tools\fields\Width->normalizeValue(Object(supercool\tools\fields\data\WidthData), Object(verbb\supertable\elements\SuperTableBlockElement))
#2 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/base/Element.php(896): craft\base\Element->normalizeFieldValue('grid')
#3 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/validators/Validator.php(254): craft\base\Element->__get('grid')
#4 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/base/Model.php(367): yii\validators\Validator->validateAttributes(Object(verbb\supertable\elements\SuperTableBlockElement), Array)
#5 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(1832): yii\base\Model->validate()
#6 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(2073): craft\services\Elements->_saveElementInternal(Object(verbb\supertable\elements\SuperTableBlockElement), true, false)
#7 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(1950): craft\services\Elements->_propagateElement(Object(verbb\supertable\elements\SuperTableBlockElement), false, Array)
#8 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(488): craft\services\Elements->_saveElementInternal(Object(verbb\supertable\elements\SuperTableBlockElement), false, true)
#9 /Users/trav/Websites/louderthanten/vendor/verbb/super-table/src/services/SuperTableService.php(771): craft\services\Elements->saveElement(Object(verbb\supertable\elements\SuperTableBlockElement), false)
#10 /Users/trav/Websites/louderthanten/vendor/verbb/super-table/src/fields/SuperTableField.php(857): verbb\supertable\services\SuperTableService->saveField(Object(verbb\supertable\fields\SuperTableField), Object(benf\neo\elements\Block))
#11 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/base/Element.php(2139): verbb\supertable\fields\SuperTableField->afterElementPropagate(Object(benf\neo\elements\Block), false)
#12 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(1957): craft\base\Element->afterPropagate(false)
#13 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(488): craft\services\Elements->_saveElementInternal(Object(benf\neo\elements\Block), false, true)
#14 /Users/trav/Websites/louderthanten/vendor/spicyweb/craft-neo/src/services/Fields.php(200): craft\services\Elements->saveElement(Object(benf\neo\elements\Block), false)
#15 /Users/trav/Websites/louderthanten/vendor/spicyweb/craft-neo/src/Field.php(687): benf\neo\services\Fields->saveValue(Object(benf\neo\Field), Object(craft\elements\Entry))
#16 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/base/Element.php(2139): benf\neo\Field->afterElementPropagate(Object(craft\elements\Entry), false)
#17 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/elements/Entry.php(1248): craft\base\Element->afterPropagate(false)
#18 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(1957): craft\elements\Entry->afterPropagate(false)
#19 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/services/Elements.php(488): craft\services\Elements->_saveElementInternal(Object(craft\elements\Entry), true, true)
#20 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/controllers/EntriesController.php(378): craft\services\Elements->saveElement(Object(craft\elements\Entry))
#21 [internal function]: craft\controllers\EntriesController->actionSaveEntry(false)
#22 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#23 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#24 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/web/Controller.php(187): yii\base\Controller->runAction('save-entry', Array)
#25 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/base/Module.php(528): craft\web\Controller->runAction('save-entry', Array)
#26 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/web/Application.php(299): yii\base\Module->runAction('entries/save-en...', Array)
#27 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/web/Application.php(566): craft\web\Application->runAction('entries/save-en...', Array)
#28 /Users/trav/Websites/louderthanten/vendor/craftcms/cms/src/web/Application.php(278): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#29 /Users/trav/Websites/louderthanten/vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))
#30 /Users/trav/Websites/louderthanten/public/index.php(21): yii\base\Application->run()
#31 /Users/trav/.composer/vendor/laravel/valet/server.php(158): require('/Users/trav/Web...')
#32 {main}

Also getting this in the Queue log:

2019-08-28 15:14:57 - error - craft\queue\QueueLogBehavior::afterError
 [323494] Resaving supertable blocks (attempt: 1) - Error (time: 1.721s): Cannot use object of type supercool\tools\fields\data\WidthData as array
2019-08-28 15:14:57 - error - Error
Error: Cannot use object of type supercool\tools\fields\data\WidthData as array in /vendor/supercool/tools/src/fields/data/WidthData.php:134

Tools version: 2.1.8
Craft version: 3.3.0.1
SuperTable version: 2.2.1
Multisite: yes

Categories Search field missing JS

I created a 'Categories (search)' field and added it to an Entry Type. However, the field does not appear to be functional on the Edit Entry page. Investigating further I noticed an Uncaught ReferenceError: SupercoolTools is not defined in the console, probably because the relevant JS file is not getting included in the page request.

screen shot 2019-01-17 at 2 25 22 pm

(I’ve tried uninstalling and re-installing as suggested in #2, but that did not fix the issue.)

Roll Your Own title not working

Hi there. I really like the "roll your own" widget thingy. I've not pushed it very far yet, but the first thing I found was that the title field wasn't working. The widget that appears just keeps using "Roll Your Own" as the title. I can't see what I might be doing wrong, so I assume this might be some kind of bug perhaps?
Cheers, Andrew

Feature request: Custom Entry Source for Entries (search)

Not an issue, but instead a feature request.

It would be great if it were possible for the Entries (search) field to be able to return entries from a custom entry source of a section. At the moment you're able to set up the field and specify the entry source/section. But if I have a plugin which has registered some custom entry sources within one of the sections, I'd like the field to return only entries from within that custom entry source.

I attempted to do this by adding some JavaScript that manipulates the settings.sources property of the 'elementSelect' data for the rendered field, so it is an array with the handle of a custom entry source rather than the configured section handle. The actionSearchForElements() method correctly received the 'sources' parameter with my custom entry source in it. However, the PHP code that handles the retrieval of results does not account for custom entry sources. It only deals with the field's configured section when building up the element criteria model.

Not sure how much work this would be, but thought it would be worth asking.

Users locking them selves out of the control panel when using Roll Your Own widgets

Hi.

There is a (high) chance of users locking themselves out of the control panel when using Roll Your Own widgets.

How to reproduce:

If you click the "+ New widget"-button and select Roll Your Own, and then just click save (because you're curious or whatever), you then get an error saying "Couldn't save widget."

Firefox_Screenshot_2023-03-09T09-05-22 356Z

I guess the error is because the default suggestion for template (_dashboard) does not exist.
This is error message is understandable, and is fine in itself.

The problem is that at this stage a row is actually saved to the database with the invalid reference to _dashboard:

Example:

mysql> select * from widgets where type like '%RollYourOwn%';
+----+--------+------------------------------------------+-----------+---------+---------------------------------------------------+---------+---------------------+---------------------+--------------------------------------+
| id | userId | type                                     | sortOrder | colspan | settings                                          | enabled | dateCreated         | dateUpdated         | uid                                  |
+----+--------+------------------------------------------+-----------+---------+---------------------------------------------------+---------+---------------------+---------------------+--------------------------------------+
|  8 |      2 | spicyweb\oddsandends\widgets\RollYourOwn |         5 |    NULL | {"title":"Roll Your Own","template":"_dashboard"} |       1 | 2023-03-09 09:05:11 | 2023-03-09 09:05:11 | b00d5bae-67f6-496e-a9a6-99885cc1b5d8 |
+----+--------+------------------------------------------+-----------+---------+---------------------------------------------------+---------+---------------------+---------------------+--------------------------------------+
1 row in set (0.00 sec)

Every action you then try to do in the control panel results in a "Template not found"-error - stack:

craft\web\twig\TemplateLoaderException: Unable to find the template “_dashboard”. in /app/vendor/craftcms/cms/src/web/twig/TemplateLoader.php:108
Stack trace:
#0 /app/vendor/craftcms/cms/src/web/twig/TemplateLoader.php(69): craft\web\twig\TemplateLoader->_resolveTemplate('_dashboard')
#1 /app/vendor/twig/twig/src/Environment.php(261): craft\web\twig\TemplateLoader->getCacheKey('_dashboard')
#2 /app/vendor/twig/twig/src/Environment.php(309): Twig\Environment->getTemplateClass('_dashboard')
#3 /app/vendor/twig/twig/src/Environment.php(277): Twig\Environment->load('_dashboard')
#4 /app/vendor/craftcms/cms/src/web/View.php(451): Twig\Environment->render('_dashboard', Array)
#5 /app/vendor/spicyweb/craft-odds-and-ends/src/widgets/RollYourOwn.php(65): craft\web\View->renderTemplate('_dashboard')
#6 /app/vendor/craftcms/cms/src/controllers/DashboardController.php(466): spicyweb\oddsandends\widgets\RollYourOwn->getBodyHtml()
#7 /app/vendor/craftcms/cms/src/controllers/DashboardController.php(104): craft\controllers\DashboardController->_getWidgetInfo(Object(spicyweb\oddsandends\widgets\RollYourOwn))
#8 [internal function]: craft\controllers\DashboardController->actionIndex()
#9 /app/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#10 /app/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#11 /app/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction('index', Array)
#12 /app/vendor/craftcms/cms/src/web/Application.php(301): yii\base\Module->runAction('dashboard/index', Array)
#13 /app/vendor/yiisoft/yii2/web/Application.php(103): craft\web\Application->runAction('dashboard/index', Array)
#14 /app/vendor/craftcms/cms/src/web/Application.php(286): yii\web\Application->handleRequest(Object(craft\web\Request))
#15 /app/vendor/yiisoft/yii2/base/Application.php(384): craft\web\Application->handleRequest(Object(craft\web\Request))
#16 /app/web/index.php(15): yii\base\Application->run()
#17 {main}

And now you're stuck without any way to disable the widget yourself.
You'll need someone with direct access to the database to delete the row.

Runtime info:

PHP 8.2.3
Craft Pro 4.3.10
MySQL 5.7.41
Odds & Ends 4.1.1

One more piece that might be relevant - in our general config we've overridden the default extension for Twig:
->defaultTemplateExtensions(['html.twig'])

Suggestions / questions:

We're actually using Odds & Ends just for the field type "Categories (multiple groups)".

Could a (partial) solution be to make which parts of this plugin to activate be configurable?
Reading a config file in Tools::init() or something? With all options enabled as default to be backwards compatible.
Are you open to PRs?

Error when open matrix with field of plugin

PHP 8.2.4
Craft Pro 4.4.5
Yii 2.0.47

Declaration of spicyweb\oddsandends\fields\Width::translatedOptions(bool $encode = false): array must be compatible with craft\fields\BaseOptionsField::translatedOptions(bool $encode = false, mixed $value = null, ?craft\base\ElementInterface $element = null): array

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.