concrete5 beginner’s guide 2nd edition

I’m happy to announce that the second edition of my concrete5 beginner’s guide is available. You can get your copy from Amazon or Packt Publishing.

The book has been updated to match the current version 5.6.1 and thus assures a better experience when following the examples. There was also a lot of valued feedback from new reviewers that has been incorporated in this edition. Thanks a lot to you guys, your feedback was very much appreciated!

Please keep in mind that this is a second edition, not a different book. If you read the first edition and managed to update your knowledge to the latest concrete5 version, there’s not much you’ll learn. The book is mostly aimed at people who want to get started with concrete5 and hesitated to buy the book because it’s a bit out-dated by now.

If there’s anything you’re missing, let me know about it – I’d be happy to publish articles on this blog to fill the gaps which were missed in the book!


Handling multiple block Versions …

Please keep in mind that after “duplicate” follows “save”, which overrides “replacesBlockID” with the “old value”, in most cases “NULL”.

The regarding code “UPDATE … SET replacesBlockID= …” should be placed in the “store” function.

Thanks for reporting this! I’m pretty sure it used to work, but I’ll have a closer look, maybe something has changed..

To add to Manfred’s comment, as I’ve recently been stuck on this, to get this working the “duplicate” and “save” methods need to resemble the following:-

public function duplicate($newbID)

$db = Loader::db();
$db->Execute(‘UPDATE btProductInformation SET replacesBlockID=? WHERE bID=?’,array($this->bID,$newbID));

public function save($data)
if ( isset($this->replacesBlockID) && $this->replacesBlockID) {
$data[‘replacesBlockID’] = $this->replacesBlockID;


Leave a Reply

Your email address will not be published. Required fields are marked *