Posted on maandag 7 december 2009 in
umbraco,
English,
v4,
api
A small comparison of using the document api versus the nodeFactory class for displaying umbraco data on the front end. Read more about it here.
A client of mine was asking how he had to use the translation features in umbraco. Honestly, I haven't used it before but have started to explore how those features can be used in umbraco. Have a look at this article and let me know your thoughts on the last question.
Hi all umbracians... Yesterday, I was able to debug some xslt from an umbraco powered website. It turned out not to be as difficult as I though it would have been... Here's what I've done to get xslt debugging working using umbraco's latest nightly build combined with Warren's excellent CWS2 package
Feel free to add some comments, I'm sure other solutions are possible... It would be great to hear about those as well.
I've recently been involved in a small project that required some advanced search functionalities. I've bundled my experiences in a Short article and tips on using search facilities in umbraco using Lucene.net
Posted on zondag 8 maart 2009 in
umbraco,
English,
v4,
tip
Lots of people are aware of those nifty hidden gems in umbraco. And today I'll introduce another one which I came across a few days ago. It's the 'umbracoUrlAlias' property alias. It can be useful in cases where you'd like to restructure some parts of the umbraco content tree. Let's take an news section example and start from this:
-Content
--News
---2009
----4
-----8
------A news item created on March 8th
Assume your client want to keep the tree structure as is (As it makes it easy for him/her to know when posts have been created/updated, but doesn't want users who visit the site to enter the complete path /news/2009/4/8/a-news-item-created-on-martch-8-th.aspx. Instead, the user should be able to enter /news/a-news-item-created-on-march-8-th.aspx.
In this case, 'umbracoUrlAlias' migth become the programmer's best friend. All you need to do is to have an extra property of type 'textstring', and alias = 'umbracoUrlAlias'. For each of the news item, enter news/name-of-the-item (Replace name-of-the-item with the corresponding new item's node name, NO LEADIND SLASH AND DO NOT ADD THE .ASPX EXTENSION) and the news item will also be available from /news/name-of-the-item.aspx.
Ok, got it?
Let's add another example (a real life example I ran into last week) where I am dealing with profiles (Basically, people that register on the site) and projects (People can add any number of projects). Content tree had to be structured as:
-Content
--Profiles
---Profile-1
---Profile-2
----Projects
-----Project-1
----Other stuff folder
---Profile-3
and so...
In this case, 'Project-1' is available from the address /profiles/profile-2/projects/project-1.aspx whereas the client requested that a project is always available from the address /projects/project-1.aspx.
Solution: Again, add a new property of 'textstring' type, alias = 'umbracoUrlAlias' and enter projects/project-1 in the field (for project-1 that is).
Pretty neat stuff, isn't that?
And it's not finished yet. Assume 'Project-1' has a number of child nodes as in following tree structure:
-Content
--Profiles
---Profile-1
---Profile-2
----Projects
-----Project-1
------Child-1
------Child-2
----Other stuff folder
---Profile-3
Both child nodes will be available from /profiles/profile-2/projects/project-1/child-1.aspx (/profiles/profile-2/projects/project-1/child-2.aspx) as from /projects/project-1/child-1.aspx (/projects/project-1/child-1.aspx) without the need to add the property for those child nodes.
Bottom line: It doesn't matter how deep the content is stored inside umbraco, it can always be retrieved using a much more simple url/path if you're adding a 'umbracoUrlAlias' property.
Happy coding!
Posted on dinsdag 24 februari 2009 in
umbraco,
English,
v4
A small introduction to a new package which is currently still in development. It has been demoed at the Benelux user group meeting last Saturday in A'dam.
'How to protect your media files from unauthorized downloading'
For more info and links to other presentations and demo, follow this link
It's been a fabulous month! Lots of stuff has been going on in the umbraco world:
° umbraco v4 is about to enter its beta 2 status.
It should be the last beta release before we go into the alpha stage. It has been a great release so far. New features which were introduced for v4 have been further developed and polished including the Live editing feature, master pages support and support for document type inheritance. Each one of those features makes umbraco a real CMS killer application. Oh, and for those who don't twitter, Niels has also announced xslt debugging for umbraco from within vs.net and svn/tfs versioning support. Can't wait to see that happen.
umbraco has also be nominated for "Best Other Open Source CMS". It's no longer possible to vote for it!
° Release of umbraco Pro.
Excert taken from the umbraco.org website:
"Umbraco pro is a commercial offering for every professional or company working on a professional level."
umbraco Pro includes both the "Courier" and "Concierge" products. If you don't know about those new products, have a look here.
° CGUS08
Last week, CGUS08 was held at Chicago. More than 30 participants have gathered to talk about all things umbraco. More info and presentation slides can be found on the official umbraco.us website.
And, Richard who's also contributing to the forum4umbraco project has won the Package contest. Congrats Richard! Great job! Ace package. Hope to see a live demo at one of our next Benelux umbraco user group meetings.
° Doug Robar has joined the umbraco company as Evangelist.
Best man for the right job. Our top most poster on the umbraco forum has been appointed Evangelist. As from now one, Doug will spread the word about umbraco all over the world. He's start conquering US... Congrats Doug and good luck on the job.
° Last but not least, umbraco.tv has been launched...
"Get instant access to more than 5 hours(!) of Umbraco Video tutorials made by umbraco founder Niels Hartvig and umbraco guru Per Ploug Hansen."
If you haven't signed up yet, this is the time. Look here for more info.
And, what have I been doing lately. Hmm, I've been evaluating umbraco even more, been setting up some proof-of-concepts for our forum4umbraco project, in co-operation with Billy Koch and Richard Soeteman and have been thinking about some new cool 'features' I'd like to work on during the coming weeks. Here's my personal wish list:
A validation framework allowing to add validation to standard/custom datatypes. Image you need a date for a document, but wishes to restrict that date to a date in the future... Currently, this is not supported. I'll be looking into this to see what is possible within the existing setup.
I'm also having a closer look at the new .net event model. Haven't played much with it, but one thing I'm missing already is the ability to cancel events. For example, what if you wish to cancel a save operation because of... whatever. Could be anything. Might do some code hacking to prepare a proof-of-concept. I really think it would be a bonus to the system. Just need to convince others... ;)
Lately, we've had a discussion on document type inheritance. I didn't like the idea at first as I've always found it more intuitive to create 'Property sets' which can be reused by multiple document types. Ok, my idea didn't make it, but I have been thinking about how to extend this functionality using the existing code base. So, I've been thinking about extending the existing data types to allow for a 'Combined datatypes', ie. having a custom datatype that is made up of other existing datatypes. Need to sort out some things first, but I might give it a shot sometime.
"forum4umbraco". Although it has been quiet lately, it surely doesn't mean we haven't been progressing. We've not written a single line of code, but we do know where we want to go. More about this later on.
Enough for now. Need to get to work again.
A great idea, a great forum and community. Put those two together and you'll get a new package, called the 'ultimateNav'. Have a look at the article about how to install and use it. If you think it could even be optimized or want something else to be included, feel free to add a comment here. I'm sure we can add some more useful stuff.
Posted on dinsdag 9 september 2008 in
umbraco,
package,
v4
Our original 'Code picker' that I've released a while ago has been adapted a bit. It's now possible to also choose the column that will be used for content publishing whereas the first version expected a hard coded 'Description' column.
For example: Assume we wish to let content editors choose from a list of available countries. Instead of using the standard dropdown list and entering the values manually, we'll choose from a list of countries that are available in the database.
First, create a new table in the database 'Countries', holding two columns 'Id' and 'Description'. Secondly, create a new datatype called 'Country picker' and set its render control to 'Code picker' (Choose from the dropdown). Hit 'Save' to enter the configuration options. From the available tables, choose the 'Countries' table. Once table choosen, the system will look up all columns for that table. Choose the table that will hold the value that is published on 'Save and Publish' of any content that will be created based on this datatype.
At this point, you'll only need to drop a property of the newly created datatype 'Country picker' onto any of your existing or new document types and you're all set.
Currently, this datatype only supports MSSql. Still have to look into things needed to support MySql/VistaDb.
Any suggestions or comments are much appreciated. Please report bugs on the forum or in the comment form.
Best of all, the 'Live editing' feature supports this new datatype. No strings attached! It has been tested on the latest build (Change set 39462)
Download the package here.
After a few hours of extra development, I've finally finished a first custom datatype, which I've now called 'Codepicker'. Basically, this custom datatype allows developers to create any number of custom dropdowns, holding a series of values populated from a database rather than entering all static values manually, as you normally would with a dropdownlist. Read more about it in the articles section.