Hot answers tagged

20

There is no sitemaps.xml out of the box in EE. You can build it using channel:entries module Example 1 Example 2 or you can use one of next add-ons: NSM Better Meta (~ $40) SEO module Sitemap Module ($49) Google Sitemap Lite (free)


10

SEO Lite is always helpful. Dynamic but let's you do page level overrides. No site maps though. http://devot-ee.com/add-ons/seolite Also adds a tab to the publish view so it's readily available.


6

I would recommend this approach with Stash: http://www.jamessmith.co.uk/articles/expressionengine-stash-tutorial-level-1#meta I dislike add-ons that purport to "do" metadata for you, because unless your site is a very basic static page-based affair (where one entry always translates to one page) they can never cover all the possibilities for how metadata ...


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 ...


4

Jim Pannell and I worked out a solution, making Copee Pastee work in EE 2.7. Add the following to /system/expressionengine/third_party/copee_pastee/ft.copee_pastee.php, at line 77. public function display_field($data) { //nothing }


4

Instead of modifying CK Editor files which would likely get nuked if you update the add on you are best to make a customConfig in the Editor Configurations. Change this and save this out to where you keep your front-end templates. var typkitID = 'XXXXXX'; CKEDITOR.on( 'instanceReady', function(ev) { var $script = document.createElement('script'...


4

it is not possible to do this with standard EE function. So you need make a new add-on - module with action which you can run by cron. Every time when cron will be run, you can get unread PM for last 24 using next query: SELECT md.message_id as message_id, md.message_date as message_date, md.message_subject as subject, md.message_body as message, mc....


4

You might want to take a look at Postmaster (https://objectivehtml.com/postmaster/) for doing this. With Postmaster I believe you can create 'tasks' which can be executed by cron and it provides facilities to handle custom messaging etc. It's also possible to set up notifications with some templating logic and these can also be triggered via a cron. I'm ...


4

If you're looking for robust tracking of user actions in the Control Panel than what EE provides, there is Audit (and Audit Pro). Audit adds some additional user tracking beyond what EE does. Here is the list of what it tracks, from its page on Devot:ee Member Logins, including Control Panel & front-end Member Logouts, including Control Panel &...


4

Adding a custom CP navigation tab is the best way to do it. But as you said it is tedious to log in as each individual user and manually create the link. There are two add-ons that will enable you to do it on a per-member-group basis. 1) Member Group Tabs This extension allows you to create navigation tabs for entire member groups in the ...


4

I like the Variables plugin for pushing meta data from my templates to my header. The variables plugin gives the possibility to create variables (either static or dynamic) and use them later on. This means that for example you can set certain data and use it in the head (if it's embedded) without having to re-create a tag pair for the specific channel. ...


4

Postmaster is definitely a viable option for this. You could create a Notification to send email's using MailChimp, which I think would be better than CampaignMonitor for this. You could just setup a CRON job to send these notifications whenever you wanted. And if Postmaster doesn't get you everything you need out of the box, the API could be used to bridge ...


4

If you need to do this from the template you could use a plugin like this one: http://devot-ee.com/add-ons/create-url-title If you need to do it directly to the DB please update us so we can give you that solution as well. Note: CE String also has a custom method called url_title which will do the same thing but, it's not a free add-on.


4

You can use the channel fields api to get the field names: ee()->load->library('api'); ee()->api->instantiate('channel_fields'); $fields = ee()->api_channel_fields->fetch_custom_channel_fields(); //change 1 to your site_id if using MSM $quantity_field_id = $fields['custom_channel_fields'][1]['your_quantity_field_name']; $sql .= "picd....


4

I'm the developer of Charge so this is obviously biased. Charge works great for member subscriptions. The focus with Charge is to keep it as simple and rock solid for the developer and customer as possible. To that end - it's tied directly to using Stripe as the payment gateway. Understandably that's not going to be perfect for every project. I'm in the ...


4

replace $this->_EE->cp->set_variable('cp_page_title', $current_page->heading); with $this->_EE->view->cp_page_title = $current_page->heading;


4

An add-on shouldn't be strictly necessary to achieve this, EE is perfectly suited to handle "Breaking News", "Announcements", etc. natively. We have added similar Alert Banners on clients sites by creating a dedicated 'Announcement' channel. We render these entries above/below the site-banner and usually limit to 1result at a time. Sometimes we will add ...


4

I found the answer. Devotee has a list here.


3

Derek is right, the docs were out of date. The latest version of Reelocate now requires EE 2.6 (this has now been corrected in the README). If you need to use Reelocate with an older version of ExpressionEngine, you can download older versions here: https://github.com/expressodev/reelocate/releases


3

If an add-on is calling ee(), it requires 2.6+. My guess is that Adrian never got around to updating the docs.


3

I've not seen or heard any chatter about this, but I definitely prefer to keep all directories and files which shouldn't be replaced during an EE upgrade in my /assets directory like this. If I can place /system below root I leave the system third_party directory there for better security. If I can't place /system below the root... Third party /system ...


3

You can't do this with a Matrix tag, but you could use Stash to set a list of the Matrix rows, then get the unique values only. https://github.com/croxton/Stash/wiki/%7Bexp%3Astash%3Aget_list%7D#unique---yes--no- matrix set_list {exp:channel:entries channel="blog" entry_id="123"} {exp:stash:set_list name="blog_related_entries" parse_tags="yes" save="...


3

You should take a look at Low Search Store. This adds compatibility with Expresso Store to Low Search - https://github.com/low/low_search_store :)


3

I think it will be enough to delete field record in exp_channel_fields table. Go to EE CP SQL manager (CP Home > Tools > Data > SQL Manager > Database Query Form) or phpMyAdmin or any other mysql manager: DELETE FROM exp_channel_fields where field_id = 21; if you want to be sure that any pieces of your grid field was removed, execute query bellow line-by-...


3

If you are in an extension, it's possible that the db class is in the midst of a query. I'll show an example. Let's say this was the core EE code: ee()->db->select('some_column'); ee()->db->where('some_column', 1); // your code gets called here, while the active record methods have already been invoked ee()->extensions->call('some_hook');...


3

You would actually want to use a module for this, so that you can have an action ID associated. The module development documentation section about the install method mentions how to setup action IDs, which basically allow you to load http://yourdomain.com?ACT=123 from a cron job and run a method from your module. From there you simply need to build out ...


3

I'd likely just do it with a channel entries loop - if only to take advantage of native publish and expiry date functionality so the client can schedule the publishing and hiding of the link you're referring to with ease, particularly if there is any changing content within the feature you're describing (which could then be handled on an entry by entry basis)...


3

Disclaimer: I represent Exp:resso (Store). You're not able to use Matrix for product modifiers but in the vast majority of cases you wouldn't need to. Store's own modifiers matrix is fairly flexible providing a way to name your own modifiers along with optional individual or shared SKUs, optional price adjustments, and individual stock control. At present, ...


3

You can temporarily disable ALL addons by adding this to your config file: $config['allow_extensions'] = 'n'; This should allow you to access the Control Panel and then attempt to delete Cartthrob from there (if you're sure you don't want to delete all your sales data!). If that fails then look in the exp_modules and exp_extensions tables in the database ...


3

That's a nasty one to debug. My advice is to let someone with a bit of codeigniter / expressionengine knowhow look at. If the addon was an extension, check if it is still referenced in the exp_extensions table. (duplicate table first as backup, then remove row with offending extension from exp_extensions table). edit: you might also be able to disable ...


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