There are two
important things to understand when dealing with CSS - how to address element
you are styling and why in the world it does not picking the style you are
trying to assign it. For the first part you might consider to install add-in to
your browser, there are many for FireFox and IE alike, so that it will actually
show element address for you. For
example, Developer Toolbar for FF can show you full path to tag cloud link in
the browser panel like shown in the picture. The second important thing to
remember is that CSS called "cascading" for a reason: all styles down
the road will cancel those on top. Which is a good thing - this way you can
style all anchors first and then be able to override style for the second layer
anchors canceling some attributes, keeping others and yet adding some on
top. And this is what we generally doing
here: first level menu buttons have it's own style, sub-menus keep some of the
attributes and cancel others so that sub-menus look different. To overcome browser incompatibility we will
add conditional block to the header of the page: More...
When you are a developer working with CSS on “as needed” bases, you have to be prepared for some pain and frustration. Don’t get me wrong, I love CSS – and what not to love? It makes your HTML code clean and light-weight, pages load faster and all formatting logic neatly separated from presentation markup. Beautiful! But I hate it, too. There are two major problems with CSS: it is not intuitive and every browser has its own parser doing job “better” (differently) than others. Practically, it means that when working on CSS you have to fire up 3-4 different browsers and test every line as you go. More...
Lately I’ve been working on the new cool theme for BlogEngine that I’m going to share with community. One of the tasks is to let it be more content oriented, which is a bit different then other themes. Basically, it comes down to having good navigation menu that will allow you to utilize stand-alone pages in BlogEngine to its full potential. Currently, you have a choice to make page a “child” of the other page so that pages do have hierarchy and can be nested into the tree-like structure. It just not rendered by BlogEngine this way, at least not right now. To make it happen I used code published on the BlogEngine forum, just making a few changes to fit my needs. This is a simple control that looks inside core library and renders all BlogEngine pages into unsorted list. Then, you can just add it to your theme and here you have it: More...
When you provide downloadable content on your blog, you might want to keep track on downloads. With BlogEngine, it is incredibly easy to do – all you need is subscribe to one of the events exposed by core framework and log download information to any medium you like. For example, you want to log it in the tab delimited flat file so it is easy to export to Excel and do whatever kind of reporting you want to do.
First thing, we need More...
OOk, I'm not much of a blogger, but I did try several blog engines on Microsoft platform and beyond before settling my mind on BlgogEngine.net. I like it a lot for simplicity and elegancy of the code base. May be I'm an old school, but I do prefer applications which code I can comprehend in it's (almost) entirety - it gives me (false) sense of security. The other thing that I like about it is support for extensibility - so you can make that simple elegant code base bloated with tons of stuff that you can package so that it pretends to be an "extension". One problem though is that BlogEngine is relatively new player and there are not too many extensions yet present. So I decided to fix it a bit…
Jokes aside, one thing that BlogEngine is missing is multimedia support. Sure, it's not a core feature and it does belong somewhere in plug-ins directory. And I really needed audio support for one of my projects. After some looking around I found that there quiet a few free flash players you can use in HTML pages (may be Microsoft will come up with knocking-your-socks-off free SilverLight player some day and it will take over the world?). By far, the most popular and slim in-line player I came across is the one used in WordPress blogs. I decided that this is the best candidate for adoption and wrote a little wrapper around this flash player to hook it up with BlogEngine. Extension that I resourcefully named "mp3player" you can download here. There are also some instructions on how to install and use it, and all code is available for you to use and change at will. I intend to maintain and enhance it over the time so any feedback on bugs/issues or suggestions for improvement are greatly appreciated.
Below is an example what it looks like – most likely you’ve already familiar with the picture, which is another advantage of using this particular player. Just click an arrow to test it:
That is amazing how easy it is to fix any problem as soon as it gets to the status of the ex-problem. After I found the way to make my email work on GoDaddy with their Form Mailer, I took another look at SMTP and sure enough all peaces readily fall into place. Here is step-by-step instruction on how to setup and use SMTP with GoDaddy – the way God intended. More...
Remember those lazy days when you could kick your trustworthy CDONTS mail messages from anywhere inside juicy spaghetti code and it just worked? Well, those days are over. Even 1.x’s System.Web.Mail – also not a brainier to use – is outdated and big no-no our days.
Now we supposed to use [W:SMTP]. And sometimes this beast just refuses to cooperate. Complete showstopper. I’m not a quitter, but I’m not going to spend countless hours googling around for the fix either (although, I admit, it is kind of addictive). So after short hunt, when first four or five “guaranteed” solutions did not work out I started looking for workaround. More...