最近 Umbraco の使用を開始し、独自のカスタム セクションを追加する方法を検討中です。
これまでのところ、新しいセクションを追加することができました。また、http://www.robertgray.net.au/2011/5/10/creating などのさまざまなブログ投稿の助けを借りて、カスタム ツリーの追加も開始しました。 -a-custom-content-tree-in-umbracoおよびhttp://www.geckonewmedia.com/blog/2009/8/3/how-to-create-a-custom-section-in-umbraco-4
この新しいセクションの目的は、データベースに保存したい問い合わせを表示することです。レコードは表示するだけで編集できません。
これまでのところ、「問い合わせ」というルート ノードと、その下に「一般問い合わせ」というノードがあります。すべてのお問い合わせを「一般的なお問い合わせ」の子ノードとして一覧表示し、クリックすると右側のメイン エリアに問い合わせの詳細を表示できるようにしたいと考えています。
上記にリンクされている最初のブログ投稿では、子ノードを表示する方法を示すために次のコードが提供されています。
using atomicf1.domain.Repositories;
using atomicf1.persistence;
using umbraco.cms.presentation.Trees;
namespace atomicf1.cms.presentation.Trees
{
public class loadDrivers : BaseTree
{
private IDriverRepository _driverRepository;
public loadDrivers(string application) : base(application)
{
_driverRepository = new DriverRepository();
}
protected override void CreateRootNode(ref XmlTreeNode rootNode)
{
rootNode.Icon = FolderIcon;
rootNode.OpenIcon = FolderIconOpen;
rootNode.NodeType = TreeAlias;
rootNode.NodeID = "init";
}
public override void Render(ref XmlTree tree)
{
var drivers = _driverRepository.GetAll();
foreach(var driver in drivers) {
var dNode = XmlTreeNode.Create(this);
dNode.NodeID = driver.Id.ToString();
dNode.Text = driver.Name;
dNode.Icon = "user.png";
dNode.Action = "javascript:openDrivers(" + driver.Id + ")";
tree.Add(dNode);
}
}
public override void RenderJS(ref System.Text.StringBuilder Javascript)
{
Javascript.Append(
@"
function openDrivers(id)
{
parent.right.document.location.href = 'plugins/atomicf1/editDriver.aspx?id=' + id;
}
");
}
}
}
私が理解できることから、この例の「ドライバー」は から引き出されているよう_driverRepository
です。ただし、それが何であり、そもそもデータベースから実際にデータを取得する方法を説明するコード例はないようです。
これに関するヘルプは非常に高く評価されます。