I'm going to address this part:
I am fairly new to EE so any help is much appreciated.
I think you'll find that many of the developers here are currently using a workflow that incorporates version control, typically Git via Github or another service.
In most cases, our workflow looks like this:
We start development on a local computer, with our ...
Native caching in EE basically comes down to:
Static Page Caching
All 5 types are explained in detail in this article on EEinsider:
Third party solutions include:
I've had the need to do this a number of times, particularly on sites that have press releases. For some reason, press release titles can be insanely long. This is all we ever have to do:
In system/expressionengine/controllers/cp/content_publish.php, appx line 2279, change this to what you desire:
'title' => array(
'field_maxl' => 255
Note: The Title Master add-on should take care of all of this, but if you can't use that for whatever reason, here is the procedure for the hack:
Update 10/10/14: Title Master appears to be abandonware at this point.
This works as of EE 2.9
Always back up your files and database before hacking the core!
Native EE Titles & URL Titles
To add an entry to EE, you need to enter data in a minimum of two places: an entry in exp_channel_titles and a matching one (by entry_id) in exp_channel_data.
The entry_id field is not auto-incremented, and so you're best to enter the data in a transaction, in case the (very rare) circumstance happens where the control panel is used to add an entry just as ...
Personally I recommend avoiding all current native EE caching systems and highly recommend investing in one or more of the already mentioned 3rd party caching systems. EE v2 did little if anything to make the dated EE v1 caching systems modern in any way, even if the CI framework has more modern caching systems available to it.
I use MariaDB on my home development environment and I love it. MariaDB is completely compatible; it's a fork of the MySQL project by the original creator of MySQL, in fact. (He left the company when it got bought by Sun some years back.) There should be zero issues
As to performance: you will probably see performance gains. It's always hard to say, with ...
My opinion is that it very much depends on the add-on. Something like Carthrob, for instance, lends itself perfectly to using the native channel entries table as data can be accessed using the channel entries tag and edited in the CP in the usual way. So in this instance, there is no need to re-invent the wheel.
If the structure of the data you need to ...
What you're referring to is the auto increment value in a table. You can change this by running the following query:
ALTER TABLE mytable AUTO_INCREMENT = X
...where X is the next number you'd expect for your IDs.
This is a database-level change and not something ExpressionEngine has as a
"feature". Only make this change if you understand you might break ...
I haven't heard of any best practices around this. I think it depends on the user, you. If you're looking for some best practices to improve speed, you may want to start with:
Ellis Lab's Handling Extreme Traffic
Solspace's Website Performance Guidelines (PDF)
Matt Perry's How to Make EE Faster
.Net's Optimise your ExpressionEngine site
Generally speaking, ...
Your SQL query would look something like this:
UPDATE exp_channel_titles SET author_id = XX WHERE entry_id IN(34,278,45,91, [...]);
You'll want to run a Recount Statistics afterwards as well.
(If there was something common to all of these entries, you could possibly incorporate more into the query that would prevent you from having to have a comma-...
My take: if this is a bespoke add-on for private use, only use exp_channel_entries and exp_channel_data if the data you're storing can added/edited using the standard EE publish/edit screens and follows the conventions of those tables (matching entry_id and channel_id, etc). Otherwise you're setting up any future developer for a whole lot of confusion, and ...
Generally the best option is to use DataGrab. It can import from CSV files, as well as XML and other formats.
The field_ft_x column stores the field "type". This is different from the fieldtypes you are probably thinking of though. For example, a "textarea" field has the option to choose which format it's in - things like None, Auto BR, HTML. You can also ...
The installer/update script doesn't create the missing column. You can create it manually if you're comfortable editing your database. I was updating from 2.4 to 2.5.5 and ran into the same issue.
As with anything you should back up your database BEFORE doing the update or this procedure.
Run the following SQL on your database;
ALTER TABLE `...
This is because all “id” columns in EE are set to AUTO_INCREMENT in MySQL. Expressionengine is never explicitly choosing what the next member/entry/etc.’s ID is going to be – MySQL assigns it automatically.
MySQL stores the latest auto-increment value internally, and it won’t automatically drop it back when a row is deleted. Some tools like phpMyAdmin will ...
Always backup first!
Hopefully they're all still pending. Go into phpMyAdmin query tab and run the following query to delete pending members:
DELETE FROM exp_members WHERE group_id = 'PENDING GROUP ID'
You can also run the query right from the control panel:
Admin › Utilities › SQL Manager › Database Query Form
If the site isn't setup to verify ...
The encoded string stored in the site_system_preferences column is a base64 encoded serialized array. Follow these steps to both unserialize and decode the string:
Go to http://blog.tanist.co.uk/files/unserialize/index.php
Paste the entire string from the site_system_preferences column into the "Unserializer input" textarea field on the left of the page
Member data is stored in (at least) 3 tables: exp_members, exp_member_data and exp_member_homepage.
You can use SQL to delete the members from these tables.
The safest way to delete them is to the the member model's delete_member method. This will make sure any relevant extensions are also run, clean up all the database tables (eg, if the member had posted ...
I recently had the same issue where clicking the "show" link didn't show DB query results when template debugging was enabled.
In my case, it was my CSS reset code that was hiding the output. If I remember correctly, "legend" was set to display:none.
You can check your theory about the matching IDs by setting up a blank template and checking to see if the ...
You and Anna/MediaGirl hit on the issue. Currently EE's output class only disables the template debugger and output profiler on responses sent through its own send_ajax_response() method (which makes certain assumptions about the response itself.) Hopefully EllisLab will build in some additional ajax response options to the Output class in the future.
MariaDB (and Percona MySQL) are drop-in replacements for MySQL, so it's 100% compatible. I would definitely switch to MariaDB, it has huge performance gains. We personally use it (Percona that is, but they are essentially the same thing) on our website (which runs EECMS) and exclusively use Percona MySQL on our hosting servers.
I'm not certain why Title Master would be insufficient for your needs. It handles increasing title length, url_title length, and works with Structure. Maybe if you state what it doesn't do that you need, that could help in identifying an alternative.
Otherwise, if you're going to hack, I think you've hit all the main spots, obviously making sure the ...
To get a single value, you want to use the row() method on your $query object:
$query = $this->EE->db->get_where( 'fb_photo_settings', array('setting_name' => 'facebook_id') );
$var = $query->row('my_col');
To get an object with a whole row:
$query = $this->EE->db->get_where( '...
Try this to see if it works for you. I just tested, and it works just fine for me.
To see all the values in the session values stored as userdata, just do the following:
You should regard ExpressionEngine as a delivery mechanism for web content. You can use its templates to output any format of content or data you want, including JSON. You can use PHP within templates for server-side processing, or write your own plugins/extensions in PHP to output data.
You can schedule cron jobs on the server to import data directly into ...
A stash list is simply a serialized variable. Setting and getting a list is the same process as setting/getting a single variable, except the list has some additional processing to separate out the elements, serialize/unserialize, sort and paginate. In practice if you are not saving the variables with save="yes" then there is little appreciable difference in ...