プロジェクトでISAPIリライトを使用していて、Tridionから.htaccessファイルを公開できるかどうかを知りたいですか?Tridion 2009 SP1:.htaccessファイルを公開することは可能ですか?
拡張子が.htaccessのページテンプレートを作成しようとしましたが、名前のないページを作成できません。
アイデア?
C#TBBを使用してページ名を変更できますか?
プロジェクトでISAPIリライトを使用していて、Tridionから.htaccessファイルを公開できるかどうかを知りたいですか?Tridion 2009 SP1:.htaccessファイルを公開することは可能ですか?
拡張子が.htaccessのページテンプレートを作成しようとしましたが、名前のないページを作成できません。
アイデア?
C#TBBを使用してページ名を変更できますか?
を許可することはできませんこれを実現するには、マルチメディアコンポーネントではなく、テキストを使用してhtaccessファイルを管理する場合は、次の手法を使用してバイナリをパッケージにプッシュできます。
1)Htaccessファイルのテキストを(Binary_Text) 2)次のようなコードを使用して、変数内のテキストからテキストファイルを作成し、パッケージに追加します。
class publishStringItemAsBinary : ITemplate
{
public void Transform(Engine engine, Package package)
{
TemplatingLogger log = TemplatingLogger.GetLogger(typeof(publishStringItemAsBinary));
TemplateUtilities utils = new TemplateUtilities();
System.IO.Stream inputStream = null;
try
{
string strInputName = package.GetValue("InputItem");
string strFileName = package.GetValue("strFileName");
string sg_Destination = package.GetValue("sg_Destination");
string itemComponent = package.GetValue("mm_Component");
inputStream = new MemoryStream(Encoding.UTF8.GetBytes(package.GetValue(strInputName)));
log.Debug("InputObject:" + strInputName);
log.Debug("Filename for binary:" + strFileName);
log.Debug("Destination StructureGroup:" + sg_Destination);
Publication contextPub = utils.getPublicationFromContext(package, engine);
TcmUri uriLocalSG = TemplateUtilities.getLocalUri(new TcmUri(contextPub.Id), new TcmUri(sg_Destination));
TcmUri uriLocalMMComp = TemplateUtilities.getLocalUri(new TcmUri(contextPub.Id), new TcmUri(itemComponent));
StructureGroup sg = (StructureGroup)engine.GetObject(uriLocalSG);
Component comp = (Component)engine.GetObject(uriLocalMMComp);
String sBinaryPath = engine.PublishingContext.RenderedItem.AddBinary(inputStream, strFileName, sg, "nav", comp, "text/xml").Url;
//Put a copy of the path in the package in case you need it
package.PushItem("BinaryPath", package.CreateStringItem(ContentType.Html, sBinaryPath));
}
catch (Exception e)
{
log.Error(e.Message);
}
finally
{
if (inputStream != null)
{
inputStream.Close();
}
}
}
}
コードはかなり自明です。これにより、text/xml型のバイナリがパブリッシュされますが、プレーンテキストファイルを変換する際に問題はありません。
あなたはあなたの.htaccessを保存するためにマルチメディアコンポーネントを使うことができると思います。名前なしでファイルをアップロードできない場合(Windowsの制限)、マルチメディアコンポーネントのBinaryContent.Filename
プロパティを変更すると、後でファイル名を変更することができます。このコンポーネントを別々に公開するか、AddBinary
メソッドをテンプレートの1つに使用します。
ありますが、他のいくつかのルールを変更することができ、ユーザのスキーマもあります:「\ Tridionの\ビン\のcm_xml_usr.xsd」は、しかし、あなたは、私はまた、バイナリを使用することを選ぶだろう、空のファイル名に
あなたの答えをありがとう。今のところ私は1つのWebサイトしか持っていないので、これを展開タスクにしていますが、将来このようなものを実装するように見えます。 –
Chris、私はこれを今のところ展開作業にすることに決めましたが、このコードは別の時間には本当にうまく見えます。ありがとうございました。 –