BlogCFC 5 development starts...

So it's been quite a long time since the last release of BlogCFC. I've finally started development of version 5. Last night I started on the administrator. The blog uses what is called "designmode" to allow you to edit on the page. This was based off Spectra (may it rest in peace). While this is handy for simply popping up a window and writing a quick article, it really isn't great for administration. As my blog has grown, I've really felt constrained by the decision to not have a "real" admin and now I'm finally doing something about it.

So far I've got comment editing (and deleting), category editing, and subscriber editing working. All things that are not in the current release. (Category editing is, but it's not terribly nice I think.)

Along with administration work, I added a new property to blog entries - views. A view is added anytime a person views a particular blog entry - not including reading the entry on the home page. You can see this on my blog in the stats portion. The numbers are a bit low since I only turned it on this morning. This change will also let me show what categories are most popular.

While I'm working on the admin and other behind the scenes stuff, Scott Stroz (Boyzoid) is working on the front end. The goal is to get to a pure CSS layout for BlogCFC, and to simply make it a bit prettier. Simple things like a background color and centering the blog make it look quite a bit nicer. I've also had other a few other people offer to submit their CSS changes, so I will be passing that to Scott to integrate.

Other changes include:

  • XML-RPC: From Jake. This will let you write blog entries completely outside of the web site.
  • Send to a Friend: This is an obvious feature that I should have added a long time ago. Once again it wasn't my idea, but suggested by a friend.
  • Related Entries: Written by Jeff and CJ. I've had the code for a while now, just haven't had a time to integrate it.
  • I'm considering a few ways to make it easier to add images to a post. I don't want a HTML editor - but maybe a way to automatically include a picture if it is attached to the entry as an enclosure.

So - there is a lot left to do. The good news is that I'm now using SVN. Once it gets to a stable alpha, I'll open it up for folks to download from and play.

Comments

Sounds great.

I am implmenting the current version into a site at the moment.

Have you considered AJAXing the comments? I've thought of doing that using ajaxCFC for the version I am implementing but it may be easier to do with a pure CSS front end.
# Posted By Sam Farmer | 4/7/06 4:19 PM
Try not to depend too much on javascript, please. :)
# Posted By Goose | 4/7/06 4:28 PM
Sounds good as ever Ray. Just as I'm getting round to implementing version 4.0 as well :)
# Posted By Ian Winter | 4/7/06 5:29 PM
Categories titles like the names of the post would be great, like in wordpress
# Posted By itcoder | 4/7/06 5:35 PM
I'm sorry, can you explain itcoder? I've started celebrating my birthday early so I may be a bit slow. ;)
# Posted By Raymond Camden | 4/7/06 5:37 PM
But I just updated to 4.1! ;-)

Seriously, though, I *really* look forward to the pure CSS changes. Much needed!

And some kind of unified administration would be awesome. Hm... using Flash or Flex for that would be nice, too. Just thinking aloud.

I wish I could assist more, but I am not what you'd call an intermediate Coldfusion developer yet.

What about:
- Photo Pod: Didn't someone (not naming names) promise that they were actually going to publish their Photo Pod source? Hopefully they'll feel the urge to add it to the Subversion repository.

- Most Recent Comment Pod? That'd be nice. I suppose I could put something like that together. Of course, I'd have a shamefully small number of comments, though. :-(

Looking forward to the new version! :-)
# Posted By Leif Wells | 4/7/06 5:48 PM
Will this be a logical progression of blogcfc as it is now, just some parts rewritten and upgraded? Is there any plans in the future to port it over to a framework (like our lady model-glue) or similar?

I only ask because I know of your love for mg, and how many people look to your blog code for examples of how to do things. I'll be happy either way, just a curiosity.
# Posted By Ryan Guill | 4/7/06 6:31 PM
This will not be a total rewrite. While I don't care for the "huge" CFC I have, I don't think it is "bad" either. Does that make sense?

My main focus on blogcfc5 is stuff that I think has been missing for a while. Things that have been making me say "I wish my blog could do that..."
# Posted By Raymond Camden | 4/7/06 11:28 PM
I'll add a Most Recent comment pod. It definitely makes sense, and would take like 5 minutes.
# Posted By Raymond Camden | 4/7/06 11:29 PM
AJAXifying it sounds great to me ... I don't mind JS dependency, nowadays it seems like it's not a huge deal anymore as long as you make it compatible with all major browsers. Plus, we're only talking about small usability functions here, not a full blog RIA.

I could assist in development if you wish, so just drop me an email if you wish, and I'll be more than happy to contribute.
# Posted By Rob Gonda | 4/8/06 12:10 AM
Any chance you'll rewrite the code base so it's more flexible and robust in general? I'm referring primarily to the way the code currently handles/depends on mappings and multiple users. I'm just curious. Nic Tunney's decided to rewrite the code (I'm actually not sure if it's even based on your code base but I know it will support the same DB schema or have an upgrade path), whih I'm really looking forward to, as the current ode is OK for a simple site but really doesn't suit my needs at all. I'd like to see you do this yourself, personally. If I can find the time, I'll do it myself and shoot the code over to you for review.....
# Posted By Simon Horwith | 4/8/06 2:17 AM
Instead of: http://ray.camdenfamily.com/index.cfm?mode=cat&...
a nice url like:
category/coldfusion/ much more google and SEO friendly
As usual thanks for your great application
# Posted By itcoder | 4/8/06 6:02 AM
Simon, a few releases ago I removed the need for mappings. I'm not quite sure what you mean about multiple users. It doesn't require multiple users, but it allows for it. One blog instlal can have N users. One blog can have N writers.
# Posted By Raymond Camden | 4/8/06 7:51 AM
I just remembered that a friend who uses BlogCFC and who is not a Coldfusion developer asked if there was an admin for shwing pods and putting them into an order. She was frustrated because she felt like she "needed to learn Coldfusion just to remove the search pod". Just a thought. Again, perhaps I can come up with something that works.
# Posted By Leif Wells | 4/8/06 9:41 AM
Interesting. Of course moving the pod order around is actually quite simple...ONCE...you realize its in the layout.cfm file. And at the end of the file. For non-CF users I can see why that could be intimidating.

I guess an addition to the blog.ini.cfm file of podOrder which would accept a list. Then in layout.cfm it would just loop over the list and include the pod items in order.
# Posted By Sam Farmer | 4/8/06 9:51 AM
I disagree with the pod sorting. Less bloat, more blog. blogCFC is for the cf user. There are plenty of other services out there for the non coder.

The reason im excited about this release is the css improvements. Its dificult to do a custom layout right now and follow the upgrade path at the same time. CSS improvements will hopefully change this.

Maybe a better way to promote and distribute the pods or skins we've all written would be nice. I never think of combing through galleon to see whats out there. If there was a pod directory maybe people would be more inclined to share their cusomizations.
# Posted By Emmet | 4/8/06 11:50 AM
A minor edit that I always perform on my copy when updating is to remove the colons between "Posted By" and the name variable, etc., for my personal preference.

Why not put the colons in the text contained in the main_en_US.properties file? It would make the code base cleaner and make updates easier for those of us who are picky about capitalization and punctuation preferences.
# Posted By Laura | 4/8/06 12:28 PM
any chance you'll make it easier to have multiple blogs based on the same code-base and database? i mean like multiple mandators for a blog-portal-like site? i'm building a portal and want to offer a blog for every member. with the current base, you load the blog code to application scope and init with the blogname (which is used somehow as a sort of a mandator). so now, when i change a mandator i have to reinit the blog and reload it to application scope with the new blogname...
# Posted By raphael | 4/8/06 12:46 PM
Ray: "XML-RPC"

I need to ask Adobe if I can release my beginners' "how-to" article from the DRK that went along with the component. You don't need it, but it might help others. Assuming I can figure out who to ask at this point.

"maybe a way to automatically include a picture if it is attached to the entry as an enclosure"

I do that in two different ways:

(1) If the user attaches a gif/jpg/png, I automatically insert the pic at the top of the post.

(2) If the user attaches a gif/jpg/png and adds an IMG element with @src="[attachment]" to the body of the post, I insert the pic at that point.
# Posted By Roger Benningfield | 4/8/06 1:31 PM
OK... how about seperating the user authentication out so it can be integrated. That has to be in the top 10 things wrong with how we archetect CF applciations! We install two apps and not only do they look different, but they each have their own login!
# Posted By John Farrar | 4/8/06 3:08 PM
Lots of comments here. I'll try to get to them all:

Most recent comment pod: Leif, I think you already emailed it to me today. Someone did. I'll definitely include it in source though. I won't use it here, but it definitely belongs in the core blog.

itcoder: SES URLs for Categories will happen. (Mostly sure.)

Leif: Ordering of pods. While I won't make it super easy for non-coders, but right now I have -0- docs for it. Two paragraphs would probably make it a lot easier for folks like her.

Laura: Colons - well, I'm not so sure they belong in the locale files. However - I mentioned above how I need more docs for layout crap. If I told people where all this stuff was, it would make it easier to make changes like that.

Raphael: I'm not quite sure I get what you mean. To have N blogs, you would use 1 ORG folder, and N client folders. These all have their own application scopes. Maybe you could explain a bit more?

Roger: I like your ideas. I worry about it being a bit too complex for the avg user, but then again, the avg user could just ignore it if they can't handle. Anyway, Roger, thank you, I'll "innovate" this as Microsoft says. ;)

John F: I agree with you, but for now I probably will not address it. You are right - it is a problem.
# Posted By Raymond Camden | 4/8/06 8:26 PM
speaking from an i18n perspective, i don't recall adding colons or whatever to labels in rb files. that's usually up to the application on what it uses to set off labels from text values/form inputs/etc.


some timezone handling functionality might be nice (i think i promised i'd add that once but your code base is moving too fast for me to keep up ray ;-)
# Posted By PaulH | 4/9/06 1:04 AM
So I lose on the colons. ;-) To me they were just strings being bandied about the application memory space; I didn't realize that they had semantic meaning for anyone. Ah well.

But I am looking forward to the CSS updates (XHTML too?). BlogCFC is a great resource and I do appreciate it being available to the CF community.
# Posted By Laura | 4/9/06 9:37 AM
Ray, the big change I need is another tier in between the underlying logic tier and the presentation tier. Right now you have too much logic in the actual presentation code, determining if to display comments or to say there are none, building title strings dynamically, and so on. This makes it very difficult to use BlogCFC but to use a completely different presentation layer (as I do, so that it fits it to the rest of the site better). Ideally, your presentation code should be just that presentation. Need comments? Make a call and get them, or get the message to display if there are none, and so on. That would make life much simpler each time I update to a newer version of your code.

Oh, and Happy Bday!

--- Ben
# Posted By Ben Forta | 4/9/06 2:30 PM
Ray, what i'm building is a portal for a closed community. There will be approx. 15.000 users and every user will have its own blog (along with other tools). Users can post new entries to their blog as well as read entries from other users blogs. They all share the same database, layout and settings. I would really like to use BlogCFC for the blog-part of that portal, because i love it. However, it wouldn't be that easy/maintainable to have 15.000 different client-folders...
# Posted By Raphael | 4/9/06 2:51 PM
Ben - I know. I'm very disappointed with most of the client code. I think moving the admin stuff out will help. Once Scott gets done with the CSS changes, I'll also look into this.



Rapheal: What you want to do is possible, but you would need to modify some of the code in Application.cfm. As you know, there is a line in there to hard code that blog name used in blog.ini.cfm. You could make it dynamic based on cgi hostname or something else.
# Posted By Raymond Camden | 4/9/06 8:00 PM
Hi Ray,

I was just wondering if you knew any PHP equivalent of your great blogging software.
# Posted By William from Lagos | 4/10/06 8:22 AM
I don't follow the PHP community at all William, sorry. (Which is not to say PHP sucks. If I didn't have CF I'd probably be a PHP coder.)
# Posted By Raymond Camden | 4/10/06 8:25 AM
Ray, for layout/presentation layer separation, what about doing something like joomla/mamba (php CMS system) do in their templates? Each piece of a page has a unique name. The template page (index.php) is a basic html page (using css layout, table layout, or whatever you want), with a single line call for each unique output piece. For example, you would have something like this:
<code>
<div id="header"><?php mosLoadModules('header'); ?></div>
<div id="maincontent">
<div id="newsflash"><?php mosLoadModules('newsflash'); ?></div>
<div id="contentarea"><?php mosLoadModules('content'); ?></div>
</div>
</code>

So I guess my idea is to transform the main index.cfm into a simple html page (a complete, xhtml-compliant page) scattered with a few cfinclude tags or cf function calls. This would allow someone (a newbie?) to edit the page in a Dreamweaver-type program to modify the layout without having to modify html code scattered throughout several different, sometimes obscure files. The other idea, also based off mambo/joomla, would be to create a templates subdir, with a subfolder for any template (or skin) that would include an index.cfm for the layout and any supporting css/image files. Then create a new setting to allow the admin user to change which template is in use. We could then create a community of templates that could simply be dropped-in (unzip the folder in the template subdir).

These are just some brainstorm ideas. I know this would be quite a bit different than how things are done in the 4.x release, but it would provide several benefits:
* allow easier minor-dot-version upgrades because we could have a layout file that doesn't change (or doesn't change much)
* allow those that want css-layout to do that, but still easily allow those silly people that may want table-based layout to remain archaic ;-)
* allow non-CF people an easier way to manipulate the presentation output because they can load a single file in Dreamweaver and edit it

Mark
# Posted By Mark Mazelin | 4/10/06 12:28 PM
Hi Ray,

Two comments from me:
- make the default font LARGER - 11px minimum - it really hurts me to read all these posts in blogCFC implementations in the Adobe world. I'm not young anymore :)

- add KTML lite as a visual HTML editor for posts - http://www.interaktonline.com/Products/Online-HTML...

Alexandru
# Posted By Alexandru COSTIN | 4/11/06 2:13 AM
Hi Ray,

love your work, and i have a few suggestions for you...

- how about a comments rss feed? one general one, and one for each post. Maybe one for the threads I am subscribed to?
- I also 2nd itcoder's suggestion of friendly category urls.
- I would prefer no JS dependency too.
- a html editor for writing posts? I really don't like the paragraphFormat() approach used at the moment. I've removed it from my own blog.
- Say i wanted your CF posts from jan 06. I would have to go to either your CF category and click "next page" to find the ones from jan 06, or go to jan 06 and then filter them by hand. Could we have categories where you can browse around a bit better? Search in a category, look at category posts from a certain date etc?

Thanks
# Posted By Gavin Cooney | 4/11/06 2:55 AM
A lot of positive feedback it seems!

For the admin section, things like removing posts, and possibly, work in progress? I used blogspot/blogger before and I was able to write a few posts, that I needed to add more info into and save them without publishing them? That would be real neat.

Many thanks for your contributions Ray, this is an awesome bit of software and just getting better all the time!

MD
# Posted By Mark Drew | 4/11/06 3:13 AM
Mark: Removing posts (deleting) will obviously be supported. Works in progress (drafts) will be supported, and actually shouldl be done this week. I'm just going to use a 'Published' flag. Then there will be a link in the left hand nav, Drafts, to show entries with that flag=false.

Gavin: I can't imagine subscribing to a comments feed, but I know other blogs have it. I'll consider it. HTML Editor - everyone in the world wants this but me. ;) So I'm considering it at least. If I do put one in, or support for one, it will be turned off by default, but I'll consider it.
# Posted By Raymond Camden | 4/11/06 5:31 AM
Hey Ray,
I'd have to agree with Roger Benningfield suggestion of having something like @src="[attachment]" to allow you to insert an image into the body of the post at that location.

As for an avg user, well for every picture that a user uploads you could automatically generate the text to insert for each image (allowing for multiple images too) eg:

@src="[attachment1]"
@src="[attachment2]"

A user can then just copy and paste that text into the location of their choosing. Then you could parse over the file and replace it with the image tags on saving.

If you wanted to got down the JS path you could do a right click picker, and then still just insert the text code @src="[attachment1]" ??

Cheers Ray

Pete
# Posted By Peter Gray | 4/11/06 8:39 AM
My 2 cents after working with the product for a while

1) Image includes: I had to deal with this to o, and i just did a simple if statement to check if the files extension was a gif, jpg or png. If it was i just dumped the file at the bottom of the post. I think that would be sufficient for 99%.

2) specific category subscriptions: make it easy for people to subscribe only to specific categories. I wrote some code already to do this (i can send it in), but i will admit it semi-sucks, and the method i used is overly complex.

3) admin approval system: I would love to see a way to allow multiple users to post to the blog but require approval. And then only admins could approve them. This doesn't seem technically difficult, and i wouldn;t mind working on it.

4) html editors: I really DONT think we need fckeditor or full editors. The only thing i really need is: bold, italics, underline, and make a link. Thats it. I think everything else will just confuse novice posters. (im developing for people used to ms word)

In any case, i am excited about the new version, and can't wait for updates!
# Posted By Jeff Gladnick | 4/14/06 11:58 PM