Okay, I worked through this problem yesterday with Sam's direct help, so thought it might be worthwhile posting here for future reference...
Required: the ability to attach a downloadable document to a page, and to give it a 'friendly' name for displaying.
So, step 1, set up the Page class...
<?
class Page extends SiteTree {
static $db = array(
"FileTitle" => "Text"
);
static $has_one = array(
"Download" => "File",
);
static $defaults = array(
);
function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab("Root.Content.Download", new TextField("FileTitle"));
$fields->addFieldToTab("Root.Content.Download", new FileIFrameField("Download"));
return $fields;
}
}
class Page_Controller extends ContentController {
}
?>
...then, on the page.ss template...
<% if FileTitle %>
<a href="$Download.URL">$FileTitle</a>
<% end_if %>