Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.weblog.file.getCatName
on getCatName (f, adrCatName, adrblog=radio.weblog.init ()) {
<<Changes
<<1/5/02; 5:12:30 PM by JES
<<Created.
<<Given the path to a weblog source file on disk, get the category name, and save it in the variable specified by adrCatName. Returns true if the file is in a category, or false if not.
<<If the script returns true, then the value of adrCatName^ corresponds to the name of a table in adrBlog^.categories.
<<Parameters
<<f -- the path to a file on disk
<<adrCatName -- the address of a variable in which to store the category name.
<<adrBlog -- the address of the weblog -- defaults to the address returned by radio.weblog.init.
local (pc = file.getPathChar ());
local (adrcat, adrcats = @adrblog^.categories);
for adrcat in adrcats {
local (catname = nameOf (adrcat^));
local (catfolder = radio.weblog.file.getCategoryFolder (catname, adrblog));
if string.lower (f) beginsWith string.lower (catfolder) { //found it
adrCatName^ = catname;
return (true)}};
return (false)}
<<bundle //test code
<<local (catname, pc = file.getPathChar ())
<<local (f = radio.weblog.file.getCategoryFolder ("default") + "2002" + pc + "01" + pc + "04.txt")
<<getCatName (f, @catname)
<<dialog.notify (catname)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.