Pixeljets

Build, Grow🌱, Repeat.

Stories from ScrapeNinja founder: bootstrapping SaaS products, web scraping, and more

Sending emails with attachments in Ubercart

Ubercart has its own CA (Conditional Actions) module which purpose is to execute  some actions when certain events happen -- you can find CA configuration screen on admin/store/ca/overview. The most typical CA use case is sending emails to customers when order is placed. But, I couldn't find any answers on how files can be attached to these emails. Sending attachment can be an essential feature of your Ubercart store - potentially, you can send your software product attached to email to customer

2 min read

Selecting good editor for content - WYMeditor, BUeditor, TinyMCE

I've been always having troubles with wysiwyg editors usage, since MS Word on my first computer. I can't easily explain that, but probably I just can't trust them - as they are always trying to mess my layout, starting from weird problems with lists margins, ending with image align not working properly. You can't easily predict, which block element your WYSIWYG editor will create when you click this or that button in its toolbar. But, it's stupid to ignore WYSIWYG possibilities. When you edit a

2 min read

Manage your Drupal website faster: best modules available

Working in vanilla Drupal 6.x admin interface can be a real pain for average content manager, and sometimes even for developer. Things are much better in Drupal 7, but 6.x branch is still very strong in terms of popularity. In this post I've reviewed modules for 6.x branch, which make life of Drupal admin and moderator much easier. Pixeljets use most of these modules on every website we're creating. Development, settings management Administration menu - that's a must-have for 99% of websites.

5 min read

Adding "Price" field to Ubercart cart page

On the /cart page of Ubercart store, you can usually see such fields: That's total price per row, and amount of products per row. For a customer project, I wanted to add single item price to this page, to make it look like this: After some digging into Ubercart code, that task was solved in ~10 lines (put these lines in your module):    t('Price'),     'weight' => 2.5,   );    foreach (element_children($table) as $key) {     if (empty($table[$key]['nid']['#value'])) continue;        // This d

1 min read

Disabling module updates

Okay, every honest Drupal developer knows, that hacking core is a bad thing. Hacking contributed module is not the best thing in the world, too -- for obvious reasons: modules get updates , and updating module is very easy, unless you've applied some hacks to it. But, sometimes, we need to apply some changes to some contrib module. If it is a big customer site, we can't just say "Hey guys, your team can update this module and this module using drush, but don't touch this module, please!". That'

2 min read