6

dashEE - is fully customizable ExpressionEngine control panel dashboard alternative. Module comes with 8 default widgets but you also have the ability to develop your own tailored to your needs. In addition to developing your own stand along widgets you can also incorporate dashEE widgets into your existing custom EE modules instantly making your ...


6

open file /system/expressionengine/third_party/ext.sh_member_group_tabs.php and change line 270: if (APP_VER >= '2.6.0') to if (version_compare(APP_VER, '2.6.0', '>=')) it is also needs to make search & replace for APP_VER >= '2.6.0' & APP_VER >= '2.8' and replace it with version_compare(APP_VER, '2.6.0', '>=') & version_compare(...


5

Have you checked all of your installed add-ons for updated versions? White screens are also typically a sign of hidden errors, so make sure that display_errors is enabled in your PHP environment, and set the $debug value in the admin.php file to 1. That may reveal a PHP error that identifies the problem. If that doesn't help, and you think you have the ...


5

This was driving me insane but I've figured it out. You need to edit the $entry object (1st parameter of the function) in order for this to work. You can, however, use the 2nd parameter, $values, for easy reading of the data. public function before_channel_entry_save( $entry, $values ) { // Set value for specific field name $entry->setProperty( '...


4

I can think of two ways to do this. One is to use Resource Router. Your config would look something like this: $config['resource_router'] = array( ':num' => function($router, $wildcard) { $query = ee()->db->select('url_title') ->where('entry_id', $wildcard->value) ->where('channel_id', 1) // use the right channel id here ...


4

ref: https://docs.expressionengine.com/latest/development/legacy/libraries/cache.html#class-methods ee()->cache->delete('/myaddon/');


3

Extensions are for backend or server side stuff, whereas Modules can interact via the frontend or EE Control Panel. So an Extension captures a hook from another class, but can't capture a form submission or Ajax call from the frontend. Whereas a Module can't tap into a hook. But you can roll both an extension and a module into a single add-on (same name, ...


3

It depends on whether the events that trigger the functions trigger a hook. If a button click, form submission, page load etc triggers a hook, then an extension is the right place for your custom functionality. If no hook is triggered and you need to respond to arbitrary clicks or form submissions, then a module or plugin would be appropriate. You can react ...


3

Extensions are used when you want to take over, modify, or perform extra routines when native first-party methods are executed. For example, performing extra actions after an entry is saved. Modules (and Plugins to an extent) are used when you want to make functionality (and therefore output) available in Templates via tags. Things that need to occur in a ...


3

Yes I don't see any problem with that if it's just for a simple tax adjustment. We don't look to make things deliberately hard. :) You could also look to set it up as an actual tax adjustment if you wanted to however. Adjustments were introduced in Store v2 to handle extra line items for anything which is not a product (e.g. shipping, discounts, taxes). ...


3

You should create a library, which is just a PHP class stored in system/expressionengine/third_party/your_addon_name/libraries/. <?php class Your_library { public function do_something() { return 'foo'; } } Then in your module / extension, you'd be able to do this: ee()->load->library('your_library'); // prints out foo echo ee()->...


3

It's the Tag module from Solspace. If you've removed the files without uninstalling properly via the control panel, you'll need to delete the 'Tag_ext' rows from 'exp_extensions' in your database.


3

I managed to fix this. My problem stemmed from an incorrect class name and missing a critical bit of code which inserted the necessary information into the extensions table. I needed to insert; ee()->db->insert('extensions', $data); within the activate_extension method The extension wasn't showing as 'Enabled' in the CP because the class name was ...


3

You're using the wrong hook. Try using entry_submission_start and/or publish_form_entry_data Update: Abort the channel entry publish process? Head-scratcher: manipulating new/updated entries after submission


3

You need to tell Store about your new gateway in the ext. file. Use the store_payment_gateways hook and pass in the $gateways array: public function store_payment_gateways($gateways) Then ensure that you add your gateway to the list: $gateways[] = 'PayU'; Include the autoloader: $composer = require(PATH_THIRD.'store/autoload.php'); And tell Composer ...


3

Judging from this statement: "The plugin uses the calculation method of the extension", I assume you're doing something like this in your plugin: $ext = new Your_addon_ext(); return $ext->do_calculation(ee()->TMPL->fetch_param('your_value')); In this scenario, the extension object will not automatically load its settings, like it normally does ...


3

You could create an extension which uses the channel_entries_query_result hook to add your variable to each entry row. That will get parsed along with the native vars. To pass data from your module/plugin file to the extension, you'd need to use the Session cache. You might be interested to know that Low Search offers a straight forward API for custom ...


3

Crelate a plugin containing single function, say, function_name. The plugin will accept member_id of logged in visitor ee()->session->userdata('member_id') and ID of entry being viewed, passed as parameter ee()->TMPL->fetch_param('entry_id) In this function, if member_id is not 0 (i.e. member is logged in), perform a check against your ...


2

I usually check if entry_id = 0 (for new entry) $this->EE->input->get_post('entry_id') == 0


2

You can compare $meta['edit_date'] with $meta['entry_date']. You will need to bring both dates to same format of course, as entry_date contains current timestamp, while edit_date is formatted as '%Y%m%d%H%i%s'


2

If you've got access to the database (command line or phpMyAdmin), take a look at the exp_extensions table and see if you can find something for "tag" there. There are a few columns in that table with helpful clues; it should reveal what add-on it is (perhaps Solspace Tag?), and, there's a column you should be able to change to disable it independently of ...


2

To get the logged in member use ee()->session->userdata('member_id') or $this->EE->session->userdata('member_id')


2

So, the answer was, after all, to create both an extension and a module within the same add-on folder. Extension to hook into the form submission, then a module to process the paypal payment. I created an action id to refer to the method within the module, and then used that as the returnURL $q = ee() -> db -> select('action_id') -> from('actions')...


2

You might find the EE Extension Development guide useful. Basically, you need to create an extension which handles the store_order_complete_end hook. I'm not sure what you mean by the $data parameter, but the $order parameter is a Store Order model. You can access attributes on it like this: $order->id; $order->billing_address; $order->order_total;...


2

Solspace has a tag add-on which most likely includes this extension. The error is telling you the same thing you found through your search. That is, the file isn't there. However, it's still being called from the DB. The easiest way to fix this is to simply upload the tag add-on and then do what you need with it from there. If you no longer have it, then you ...


2

Take a look at line 1187 in system/expressionengine/controllers/cp/content_files.php. The function do_sync_files() is called by the synchronize page. This would be in the EE 2.8.1 core files. You could probably write a script that calls that function or else re write the logic for your own use (I think it checks a bunch of environment variables that would ...


2

To use the store_order_taxes hook correctly, you should append a Store\Model\Tax object to the list of existing taxes. That way, Store will automatically make all the necessary adjustments to the order totals for you (you shouldn't need to edit the order directly). If you change the $order->order_tax and $order->order_total variables directly, you may ...


2

Why not just use the non-Wordpress version of that plugin? You would just take the static HTML markup that the plugin uses to build and apply animations and replace them with markup coming from a loop in EE. Similar to that, I've used Royal Slider with EE, as well as ResponsiveSlides.js - essentially anything that uses HTML, CSS and jQuery for a slider ...


2

Usually it is used for making form hidden fields in modules. In your case (for simple form) it is possible better to use {AID:class:method} tag in template: <form method="post"> <input type='hidden' name='ACT' value='{AID:Lb_cart_ext:redeem_coupon}' > <input type="hidden" name="csrf_token" value="{csrf_token}"> <input type="submit"&...


2

If I am understanding this correctly what you need to go is create the form that will be displayed this is where you would pass the action id to the form. YEah this won't work in an extension. please move it to a module How to do this you say, well let's say in your module you create another function that will generate the form and with all the required ...


Only top voted, non community-wiki answers of a minimum length are eligible