Questions tagged [modules]

Questions related to Craft 3 Yii Module Development

Filter by
Sorted by
Tagged with
0 votes
0 answers
13 views

Set asset volume dynamically via module depending on uploaded file kind

I'm trying to set the asset volume dynamically for new assets, using a module. I would like the volume to be based on the asset's file kind – in my case, automatically putting MP4s into a 'Videos' ...
1 vote
2 answers
69 views

Add to / remove from user group

I have a profile form with a select menu for a user to choose their nearest location (a Category group.) A user will select their nearest location, it will add the category to their profile and then ...
  • 385
1 vote
1 answer
38 views

Count consecutive years in Tag array in a module

I'm coming back to this question after some time because I feel like I have a bit more knowledge to be able to tackle it. Starting from Andy's pseudo-code, this is what I've got and it seems to be ...
  • 385
0 votes
2 answers
47 views

Setting up and understanding a controller

I'm trying to set up a module with a controller as bit of a learning tool. The learning is not going well so far. Here is my setup: - modules - - site - - - playing - - - - Playing.php - - - - ...
  • 385
0 votes
1 answer
46 views

502 Bad Gateway when updating expiry date via module

I'm guessing I'm doing something bad with my code and it's bringing down the server. Here is the full code: Event::on(Element::class, Element::EVENT_BEFORE_SAVE, function (ModelEvent $event) { if (...
  • 385
0 votes
1 answer
18 views

Require Expiry Date

I'm trying to setup a module to require the Expiry Date on a specific Entry Type, borrowing from this question. Can anyone help me learn why my code is wrong? Event::on(Element::class, Element::...
  • 385
0 votes
1 answer
24 views

Can I detect if the event is saving entry?

I have been implementing my own module like this; protected function myFunction() { Event::on( ElementQuery::class, ElementQuery::EVENT_BEFORE_PREPARE, function(Event $event) { ...
  • 401
1 vote
1 answer
178 views

$allowAnonymous must be array|int|bool

I'm using a module to add two actions to a form. When submitting the form I get this error. I have used pluginfactory to build this module. I am very new to modules/plugins, so if anyone knows more ...
  • 29
0 votes
1 answer
26 views

How to use twig macro inside controller?

I want to use the macro I defined in twig inside a controller or a module. Is that possible?
  • 53
0 votes
1 answer
37 views

How to use twig function inside another module or plugin?

How to use twig function extensions inside another module or plugin? Say I created filterCats() twig function and it is already available in twig Is it possible to use it inside a module or plugin? ...
  • 53
0 votes
1 answer
17 views

Reordering Matrix blocks by date in the control panel when saving an entry

I'm trying to reorder Matrix Blocks in date order when saving an entry in the control panel. I kind of have it working using the following code. My Matrix field is 'events'. Each block contains a date ...
1 vote
1 answer
66 views

How do I allow a user to edit another users data via module?

I'm attempting to allow a user to edit other users via a front-end form. The "Edit users" permission has been checked in the admin but when I submit the form the data doesn't save. For this ...
2 votes
1 answer
58 views

Create a pending user from plugin

I'm trying to create a pending user account when an event occurs $newUser = new User([ 'firstName' => $submission->firstName->getValue(), 'lastName' => $submission->lastName->...
  • 1,793
1 vote
1 answer
69 views

Attach file to Freeform submission

I'm building a form that allows a user the ability to attach their authored assets onto the form submission. I have a custom module that's hooking into MailerService in Freeform and looking up the ...
  • 1,793
1 vote
2 answers
65 views

Catching queue fail event

I have a queue that runs from a cron tab and I'd like to know immediately if it ever fails. Is there an event that fires or any other kind of way to hook into the queue behavior in a module when it ...
  • 313
2 votes
1 answer
229 views

How to run custom module controller actions from console?

I have built a custom module with some custom controller actions - some of which I would like to run via console, but I am not sure what the path/command should be for running these actions? In my ...
  • 458
1 vote
1 answer
50 views

Front-End user registration dynamic usernames - duplicate check

I have a front-end user registration form that generates a username automatically based on the first and last name inputs. This works as intended but on the off chance that two people have the same ...
1 vote
1 answer
32 views

`SetElementTableAttributeHtmlEvent` with an array

Second to my other question about adding a column to the orders index, I would now like to add a column looping over the products in the order. How can I do that when then ...
  • 385
1 vote
1 answer
86 views

Creating an asset from an API using a module

I'm currently making a module that I'm hoping is going to create entries and assets from an API. I've got the entries part working and now I'm trying to create an asset from a URI of an image. I've ...
0 votes
0 answers
25 views

Module Action URL always throws 404 on Nitro

I am building a module and for some reason the action URLs are throwing an invalid route error locally (in both Nitro and Laravel Homestead) but not on my production server. I know all of the old case ...
  • 103
1 vote
1 answer
86 views

Check user data before login - Events on Craft3?

I need some help with my login process, it's working but I feel it's not the best approach to achieve it I have the following workflow for the Login process : 1- enter username/password -> press ...
  • 125
0 votes
0 answers
50 views

Check if element 'status' has changed on EVENT_BEFORE_SAVE

In a custom module, I am listening to EVENT_BEFORE_SAVE and then using isAttributeDirty/isFieldDirty to identify which entry fields that have changed, to decide on which further action to take. ...
  • 458
0 votes
0 answers
45 views

How to save the selected assets in custom module

I am trying to create a custom module where I have created an asset uploader field. Images are getting uploaded with that field but not saved. class Settings extends Model { // Public Properties ...
  • 1
1 vote
1 answer
301 views

How to create custom utility/helper functions for use in Twig templates?

So when using Drupal or Wordpress -- obviously you can write as much PHP in a template as you need, or in Wordpress for example, you can abstract that functionality away to the functions.php file. ...
1 vote
1 answer
46 views

Difficulties to setup a Filter class

This question is following this one: Where to implement Craft Webhook FilterInterface. I'm trying to implement a Craft Webhook FilterInterface but failed to load it. Below is the content of my setup, ...
1 vote
1 answer
51 views

Where to implement Craft Webhook FilterInterface

I have a custom Module and I would like to implement the craft\webhooks\filters\FilterInterface as seen on the doc. I understand that the event Webhooks::EVENT_REGISTER_FILTER_TYPES should be added in ...
1 vote
1 answer
31 views

Craft 3 paginate not working when fetched with a controller

I'm loading a paginate via Craft::$app->getView()->renderTemplate(), this is being executed within a controller. But my pageInfo.nextUrl is now the url of my controller (/actions/controllername/...
  • 160
1 vote
1 answer
195 views

How can I see what fields changed on EVENT_BOEFORE_SAVE and or EVENT_AFTER_SAVE

I want to see what data is changing whenever someone is updating an element to act on the difference between the states. In this particular case a User, but more abstractly speaking, an element. In ...
0 votes
0 answers
117 views

Form with controller action, not working on Safari only (!)

Got a problem with a module. It functions in Firefox and Chrome, but not in Safari. It seems that the action fired from the form doesn't even call the controller, the page just reloads. ...
  • 167
2 votes
1 answer
91 views

How to make custom element types restorable?

In Craft CMS 3, custom element types support soft-deletion out of the box. But once soft-deleted, there is now way to restore elements that are now listed in the Trashed status, the only available ...
  • 1,130
2 votes
2 answers
69 views

How to reliably determine if an entry is being duplicated?

On a Craft 3.7 site, I need to make some changes when duplicating an element: set the dateCreated, dateUpdate & postDate to the current date ensure the entry is disabled clear the value of an ...
  • 1,130
0 votes
0 answers
93 views

getDirtyFields returning more results than expected

I have a module that sends an email whenever a specific entry field is updated. Everything is working fine except that the field is being passed to the dirtyFields array even if it has not been ...
0 votes
1 answer
162 views

CP Module: saving, editing, and reading a form

I read the docs multiple times but I'm stuck. I need to create a module that shows a form in the CP where an admin can input and save answers to 2 questions. It will always be just one single form. I ...
  • 167
0 votes
2 answers
216 views

How to access 'setRouteParams' model in form validation

I created a module that adds a password protection to a site I'm testing craft on (I'm new to Craft and Yii, so please bear with me). In the front end there's a form where users enter a password and ...
  • 167
0 votes
0 answers
106 views

Passing variables, and reading them, to Module template

I'm trying to pass an array to a module's twig template (on the front end). I have tried many solutions I've seen here, but I'm not able to read the passed variables inside the twig template. In my ...
  • 167
2 votes
2 answers
490 views

Unable to find the template

I know this question has been asked multiple times. I have read all the post on this topic, and craft's docs. But still, I haven't figure out what I'm doing wrong. I would really appreciate a hand ...
  • 167
2 votes
1 answer
110 views

Where can a module safely store Project Config settings?

I can add a custom setting to the Project Config like so: Craft::$app->getProjectConfig()->set('modules.module-name.settingName', true); In the project.yaml file that would get saved at the top ...
  • 13.3k
1 vote
0 answers
193 views

Invalid Route in module

I'm new to craft and slowly learning how to use more advanced features. I'm trying to write a module with a controller. When the route is invoked on a fetch call I get the following error: HTTP 404 – ...
  • 167
2 votes
1 answer
39 views

Querying media asset in module

I'm learning to write my own modules, so there's a lot that I still don't know. I have looked at other modules/plugins, videos, but I arrived at a dead end. I'm writing a module that generates ...
  • 167
1 vote
1 answer
273 views

How to update a User's Entries custom field only once just after save?

From a custom module, I'm listening to EVENT_AFTER_SAVE_ELEMENT events, to be sure to get the Entry ID after save: Event::on( Elements::class, Elements::EVENT_AFTER_SAVE_ELEMENT, function (...
3 votes
1 answer
148 views

How to loop through specific entries in plugin and edit and save

I want to update some custom field values on my Entries with data from a third-party API, via a Plugin or Module. How do I load the relevant Entries, and one-by-one set and save the new data in my ...
  • 1,910
2 votes
1 answer
58 views

Asset upload hangs when uploading to asset field in entry

I wrote the following code in Module.php that checks if a file size is too large during an asset upload (the file size limit and asset volume handles are defined in a globals: a table with one column ...
2 votes
1 answer
176 views

Update matrix block field before saving entry

I have a custom module, on EVENT_BEFORE_SAVE I am looping through a matrix field, this matrix field has a block which has an entry field, a number field and a lightswitch (to know if this block has ...
  • 439
1 vote
1 answer
139 views

Module: adding amounts to total item price, based on chosen option (e.g. giftWrapped)

I made a module, which should add an amount to an item, based on the chosen option. For example, if user checks "gift wrapped" 5$ gets added, if "Gift wrapped with Card" is chosen, ...
  • 339
1 vote
2 answers
169 views

Get System Activation email link

On my site a type of user can add new clients and I wanted to automate the activation email, so that when a new user is added then the client will get the activation email. But I'm getting an error ...
1 vote
1 answer
158 views

Craftcms 3 Module - API call validation (on EVENT_BEFORE_SAVE, EVENT_BEFORE_VALIDATE, EVENT_AFTER_VALIDATE, EVENT_AFTER_SAVE)

I am trying to validate entries on Save in a Module. My specific use case requires that the Entry validation - on failure to validate will return user to form with field errors. On successful ...
3 votes
2 answers
294 views

Check if a FieldHandle exists in Module without throwing 'Invalid field handle' exceptions

I've been pulling my hair out trying to work this one out. I'm building a module to auto-populate a super-table on EVENT_BEFORE_SAVE, the module works exactly the way I want it to, everything seems to ...
1 vote
1 answer
43 views

Class '...SiteModuleService' not found when used inside scout.php

I have a custom SiteModule that is used inside scout.php to deliver indexing data to Algolia. I have followed CraftQuest's tutorial on creating a custom SiteModule for handling the indicies. The setup ...
  • 627
0 votes
1 answer
29 views

Add a form field into the details bar on the entry edit screen and do something with the value

I'd like to add a form field into the details bar on the entry edit page, so that when the entry gets submitted, the form field value gets passed into the data payload so that I can pick it up from ...
  • 912
1 vote
1 answer
60 views

How to remove category link from redactor links but leave assets and entry link

This is a follow up from How to remove Link To Category from Redactor. I've been able to setup the module and remove all links with this: Event::on( RedactorField::class, RedactorField::...
  • 1,052