[Sitecore 8][Luke][Lucence]Lukeを使ってサイトコア8のLucenceインデックスの内容を確認する

概要:Luke というツールを使用し、サイトコア8の Lucene インデックスの値を確認したり、またフィールドを追加して、中身を確認したりするメモ書き 検証環境は次の通りです。 Sitecore 8.0(rev.10922) Luke 3.5.0   LukeはLuceneのインデックスブラウザで日本語でLukeについての記事がないかを検索したら、この記事をみてLukeを使ってインデックスを確認するについてもう少し書いてみたいと思いました。Lukeのダウンロード、インストールは上記の方の記事に詳しく書かれているのでここでは重複しません。ここではLukeを使ってインデックスの追加や確認手順のみを書きます。 既存のフィールドを確認する   アイテムを検索する 今日は自分が始めてLukeを使うユーザと想定して検索をしてみます。 どのバージョンでもインストール後、”Sample Item”があります。この”Sample Item”アイテムテンプレートを検索してみます。きっと簡単だろう。 Searchタブで検索したいキーワードを検索したいフィルドを選択すればいいのでは。。。 トライ1、結果なし。パーザーの結果を見ると、なるほど。。。 トライ2、やはり結果なし。。。ちゃんとパーザーされていたのに、なんで? トライ3、小文字をしてみると結果があった。。。でもなんで? インディクスのフィールドは通常.CONFIGで定義しているのでファイルで_templatenameで検索ををかけるとこのSitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config設定ファイルにてフィールドの設定でアナライザーの設定をみつけました。 <field fieldName=”_templatename” storageType=”YES” indexType=”TOKENIZED” vectorType=”NO” boost=”1f” type=”System.String” SettingType=” Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider”> <analyzer type=” Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider” /> </field> アナライザーはLowerCaseKeywordAnalyzerを使用しているので小文字となっているわけです。これで納得です。さてと、もしアナライザーを変更すれば小文字でなくでもサーチができるはずのではと思ってアナライザーを変えて試しました。同じ結果を見つけた。 ついてですが、複数のキーワードで複数のフィールドを検索したいなら、こんな感じです。   フィールドを追加し確認をする さて、簡単な検索ができたところで、簡単なフィールドを追加してサーチしてみましょう。SampleItem テンプレートに Single-Line Text フィールドを追加し、インディクスを再構築します。 で再度インディクスを開き、確認 Documentを開いてフィールドをみると、追加したフィールドが見えたらない。。。 ここに表示されたフィールドのリストは、「hydrate」というプロセスが利用できる値で、それは自動的にPOCOを移入プロセスです。もっと詳しい記事はここに 要するに保存タイプを指定する必要があります。 <fieldType fieldTypeName=”single-line text” […]

[Sitecore][Insert From Template]テンプレートから挿入について

こちらの記事はSitecore Advent Calender 2014の12月17日の記事です。 今日は”テンプレートから挿入”について書いてみたいと思います。 ”テンプレートから挿入”がバージョン7となって、テンプレートの”検索”タブが追加され、ユーザーに使いやすさを提供した一方で適切でないテンプレートを選択し、問題となる可能性が出てきます。 サイトコアの管理者また、CMSユーザが下記のアイテムへのアクセス権限を持っていればこの”テンプレートから挿入”が表示されます。 [divider border=”small”] 基本的にテンプレートを作成する際にスタンダードバリューにて挿入オプションを設定するのはお勧めですが、忘れたりする場合を考えてこの”テンプレートから挿入”を隠す場合もあります。これを対処するにはいくつかの方法を書いてみたいと思います。 [divider border=”small”] サイトコアの設定のみ対応する コードを使用せず、設定のみで対応するにはサイトコアのCoreデーターベースにてこの“Insert from Template“アイテムを隠すまたアクセスを制限すればいいです。 一番簡単なのはこのアイテムを別の場所へ移動して隠します。 [icon icon=”smile-o”]このアイテムが移動されると、メニューから隠されます。  [icon icon=”smile-o”]このアイテムのアクセスを制限し、ユーザー別に管理することもできます。 [divider border=”small”] サイトコアの設定とコードで対応する もっと柔軟な制御をしたいなら、コマンドテンプレートを実装するします。ルールエンジンを使用し、ルールで制御したり、uiGetMastersパイプラインプロセッサを挿入し、挿入オプションを割り当てたりすることもできます。JohnWestさんがこれについて詳しい手順をの記事にて書いていますので参照してください。 [icon icon=”location-arrow”]上記に参照している日本語のドキュメントは下記になります: データ定義クックブック データ定義リファレンス 直接関連しないですが、もし既存のメニューにてエントリをコマンドを追加されたいなら、この記事を目を通すことをお勧めします. [infobox color=”#81d742″ textcolor=”#000000″ icon=”comment-o”]サイトコアが優れた拡張性を持っているので、この挿入するメニューをオーバーライトすることができないかと思って試してみました。[/infobox] まず、右クリックして挿入するというのはおそらくコマンドアクションであろうと思って、Commands.Configをみたら、item:newというコマンドがありました。 DLLをみれば、ItemNew にあるGetSubmenuItems関数にてテンプレートから挿入が追加されています。この関数をオーバーライトすればいいかと思いました。 必要なコードをプロジェクトへコピーしコマンドアクションを変更します。 namespace local.sc75.Website.sitecore.shell.Framework.Commands { #region using System; using System.Collections; using Sitecore; using Sitecore.Data.Items; using Sitecore.Data.Masters; using Sitecore.Diagnostics; using Sitecore.Security.Accounts; […]

[Sitecore][kb.sitecore.net] ナレッジベース#KB422242

サイトコアのナレッジベース記事#826753>Chrome38にて、ユーザーマネージャを使用しルール追加にの問題と同じ内容です. 今日思ったことですが、日々の作業で同じ問題は違うプロジェクトでよくあります。サイトコアはそれらをナレッジベース(kb.sitecore.net)にてすごくよくまとめています。 私はもし同じ問題が二回以上出会った場合かつナレッジベースに掲載されてた問題だけ、ここで共有したほうがいいと思いました。このエラーはバージョン7.5となっても既存していますので、サイトコアのナレッジベースにてソリューションを掲載していますので以上目を通すことをお勧めします。   [su_accordion] [su_spoiler title=”説明” style=”fancy”] [su_list] Chrome38でユーザーマネージャにてルールの追加・変更する際に編集されるユーザロールダイアログを閉じた後エラーがポップアップします。   [/su_list] [/su_spoiler] [su_accordion] [su_spoiler title=”ソリューション” style=”fancy”] [su_list] ファイル~/sitecore/shell/Applications/Security/SelectRoles/SelectRoles.xaml.xml にて、update()関数にてへ下記の変更します。 [/su_list] [/su_spoiler]

[Sitecore][WFFM]フォームフィールドをカスタマイズ

概要:Web Froms for Marketers のフォーム日付フィールドをカスタマイズする手順のメモ書きです。 検証環境は次の通りです。 Sitecore 5 Sitecore 6 Sitecore 7   Web Froms for Marketersのフォームにデーフォルトで必要なフィールドはそろえています。また、カスタムフィールドも簡単に追加することができます。お客さんの要求で既存のフィールをにちょっとしたカスタマイズが必要とされる場合はよくあります。今回、簡単な既存フィールドのフォーマットをカスタマイズする手順を書いてみたいです。 例えば、”日付の選択”というフィールをを使用する際にディフォールとのフォーマットは欧州(日 – 月 – 年)となっています。これを日本(年 – 月 – 日)フォーマットに変更してみよう。   まずこのフィールドを使用しているアセンブリとクラスをクラスを見つけよう。DLLでみでもいですし、date pickerで検索をかけるとフィールドアイテムが見つけて、そこで使用するクラスをすぐに見つける時もあります。 ライブラリでコードとみると、変更画必要とするのはに二箇所に箇所です。 このクラスをカスタマイズします。まず、クラスを追加します。追加する場所は開発者によって違ってきます。同じパスを使う開発者もいれば、カスタムコートを別のフォールターで管理する開発者もいます。また、別のプロジェクトを作成して別のライブラリで管理するところもあります。よく、カスタムロジック(CL)また、ビジネスロジック(BL)、カスタムロジックレーヤーやビジネスロジックレーヤーと呼ぶところもあります。個人的に別のぷロジェストで管理をすることをお勧めします。なぜなら、アップグレードする際に注意にすべき変更をレピューしやいです。また、別のdllですので、お客さんの要求で変更を行う際にサイトをこういったレーヤーで変更だけをし、サイト全体コンパイルせずに済む場合もあります。この例で同じパースを使用します。 コードをコンパイルした後、DatePickerのアセンブリとクラスを変更します。 これで次回日付の選択を使用する際にディフォルトで日本(年 – 月 – 日)のフォーマットになります。 #region using System; using System.ComponentModel; using System.Web.UI; #endregion namespace local.sc75.Website.Web.UI.Controls { using Sitecore.Form.Core.Attributes; using Sitecore.Form.Core.Utility; using Sitecore.Form.Core.Visual; [ValidationProperty(“Text”)] public […]

[Sitecore 8]サイトコア8を試す

仕事の方はは何時になっても忙しい。。。 やっとサイトコア7.2の作業を始めたものの、7.5がすでにリリースされ、8のコピーももらったのになかなか試す機会がない。会社で何時となって、8を試せるが見当もつからないので、ちょうど家のPCをSSDに切り替えたのでいい機会で7.5と8を一緒にインストールすることにしました。 インストールは過去のバージョンと比べてあまり変わらず、新しいと思ったもはMongoDBのコネクションです。MongoDBのインストールも極めて簡単。メモのビデオを添付。 サイトコア8をいろいろとクリックしてみました。7.2の日本語のパーケージを使っているので日本語が表示されていないものがありますが、これはあくまでもアーリーアクセスバージョンなので、正規リリースの際にきっとすべてが対応すると思います。スクリーンレコードも添付して、参考になれば幸いです。

[sitecore][secure][login]簡単なセキュアーセクションの設定

概要:簡単なセキュアーセクションの設定をする手順です。 この前、お客からセクション別にログイン使ってアクセスできないか言われました。既存のサイトコアのextranetユーザーで管理しでもいいと言ったので、そのメモ書きを書きます。 まず、テストのセクションを作成しましょう。 例えば、人事と開発とあります。人事セクションのコンテンツは人事部の関連者のみアクセスができ、開発部のコンテンツは開発部の方のみアクセスができます。ディフォルトの設定では、だれでもこれらのページへのアクセスが可能です。 次に、それぞれの関係者のログインを作成しましょう。 さて、それぞれのセクションにてアクセス権限を設定しましょう。 開発のセクションは開発のログインはのみアクセス許可します。 extranet\Anonymous のアクセスを停止します。 アクセス権限の設定の後、ログインページを作成ししましょう。 ユーザーログインのサブレイアウトを追加します。ページーへ追加します   ここからサンプルのログイン画面を取得。ログインページへ行くと、こんな感じです。 local.sandbox.com/SecuredーSection/LoginPage さて、ログイン画面を設定のあと、開発のページへ行くと、許可がない画面になります。 local.sandbox.com/Secured Section/dev/DEV URLをみれば、サイトコアはアクセスの許可がない際にnoaccess.aspxにリダイレクトされます。 このページを先ほど作成したログインページへ指定すればいい。 この設定はWeb.configになるNoAccessUrlにて設定します。 Web.config <!– ACCESS DENIED HANDLER Url of page handling ‘Acess denied’ errors –> <setting name=”NoAccessUrl” value=”/Secured Section/LoginPage.aspx” /> さて、ログイン画面を設定のあと、ログイン画面が表示され、開発のログインで登録すれば、ページが開発の関係者のみアクセスができます。 このメモ書きに使用したコードです: UserLogin.ascx <%@ Control Language=”C#” AutoEventWireup=”true” CodeBehind=”UserLogin.ascx.cs” Inherits=”local.sandbox.com.Website.layouts.Sandbox.UserLogin” %> <div id=”login”> <h2> <span class=”fontawesome-lock”> ログイン </span> </h2> […]

[Sitecore] Sitecore Symposium 2014

先々週のサイトコアシンポジウム2014 ラスベガスから帰ってから相変わらず毎日が忙しい。今日やっと少し時間があったのでシンポジウムについての感想を書いてみたい。 まず、私はシンポジウムで日本人のサイトコアの開発者と会うことをすごく楽しみにしていました。しかし、日本からの開発者みんなどうもBarcelonaへ行かれたようです。本当に残念でした。 なせなら、私は一昨年のシンポジウムへの参加はできなかった。シンポジウムへいくにはお金が掛かるので、なかなか会社から行かしてもらえない。一般の会社では営業の方がメインでテクニカルで行かしてもらえるにはサイトコアのMVPもしくはテクニカルリーダー上でないと行かしてもらえない。同僚が前々回のシンポジウムで日本人の開発者にあったぞ言われて、私も必ず次回のシンポジウムへ行かしてもらえるように頑張るぞと決心をして、過去に一年半近く仕事の方でかなり頑張りました。今年始め今回のシンポジウムに行かせてら得るといわれ、今回のシンポジウムで日本人のサイトコアの開発者で日本語でサイトコアを語りれるぞと思ったのです。結果みなさんにあえず、本当に残念です。 でも、決してこれで諦めたことではなりません!次回のシンポジウムまた、将来もし日本でユーザーグループができたら、オンラインで参加します! シンポジウムについて、私は初めてのもので、新しいテクニカルな知識を得たとようより、サイトコアという製品の過去、現在そして将来を見ることができたような気がします。最もエキサイトしているのはバージョン7.5は今月まで、そして、バージョン8はクリスマスの時期にリリースされるそうです。シンポジウムに参加されている方と話をかけたところ、すでにバージョン8を持って、開発をされている企業もいました。ただ、イェロースクリーンが多いよといわれた(笑)。また、プレゼンテーションでサイトコアのログイン後のスクリーンをみるにはSpeak Dashboardとなり、Speak UIがパワー全開って感じです。 この方のブログでサイトコア8の紹介およびスクリーンショットがあります。 シンポジウムで沢山な新しい情報から自分にシンポジウムから本当に何を習いましたかと聞くと、テクニカル的な知識と比べて、このサイトコアエクスペリエンスプラットフォーム(The Sitecore® Experience Platform™)そのもの将来を見えたって感じです。面白いことで、このエクスペリエンスプラットフォームとなって、データーベースもxDB(MongoDB)となって、私たちもX-Developer となった。(笑) 感触を一言でいうと、サイトコアエクスペリエンスプラットフォームでサイトに来るお客さんの情報を収集できる限り収集し、それを分析して、顧客のニーズにあった経験を提供することで、生涯の顧客となることを目指しています。これを可能にするにはビッグデータの処理を可能にするMongoDBを使用したという感触を得た。 以前のシンポジウムの後、各トラックのドキュメントが公開されていたのですが、今回も公開されるかどうかは分かりません。もし、公開されたなら、またリンクを追加します。 MongoDBの話題が多かったので、それに関連したリンクをまとめました。 MongoDBをなぜサイトコアが導入したのかの技術的な面から詳しく説明されています。 Dan SolovayさんのブログでMongoDBに関するリンクのまとめです。 現場からサイトコア7.5でMongoDBを関連したポストです。ぜひ読むのをお勧めします。  

[Sitecore][WFFM] Web Forms for Marketers captcha エラー

概要:Web Froms for Marketers captcha エラーの解消方法 Web Forms for Marketers を使ってフォームを作成し、CAPTCHAを使う場合は有ります。 CAPTCHAの文字を正しく入力しでもエラーになる場合があります。   これはもし長いフォームである場合はCAPTCHAのタイムアウトの設定を変更すればいい。 \Website\App_Config\Include\Captcha.config <!–  マックスタイムアウト             キャプチャの有効期限が切れている最大時間を設定します             デフォルト値:: “00:01:30” (90 秒)                     Minimum value: “00:00:15” (15 秒)       –>    

[sietcore][site][set up]サイトをローカルにセットアップする際によく見かける問題のトラブルシューティング

概要:サイトをローカルにセットアップする際によく見かける問題のトラブルシューティング   よく新人の方からサイトコアのサイトをセットアップに関して問題を貰ったりします。その際によく使う自分なりのチェックリストを書きます。 1.インストールガイドに従ってインストールします。 (SDNにログインして、下記をリンクを参照するように。) 英語版 日本語 2.サイトコアのログファイルが作成されているかどうかを確認します。ログファイルが作成されていなかったら、サイト自体が動作していない可能性がたかい。サイトが動作するように確認します。たとえば、t.txtを作って、アクセスができるかどうかを確認。 t.txtすらアクセスができない場合は今一度Apppoolで使用しているIdentityが適切なアクセス権限の確認を再度しましょう。通常はアクセス権限が問題であることが多い。例えば、デフォルトのCドライブより、wwwrootフォルダを別のドライブに作成する際にアクセス権限の設定を忘れたりすることがあります。 3.サイトコアのログファイルが作成されているかどうかを確認します。ログファイルが作成されていなかったら、サイト自体が動作していない可能性がたかい。サイトが動作するように確認します。たとえば、t.txtを作って、アクセスができるかどうかを確認。t.txtすらアクセスができない場合は今一度Apppoolで使用しているIdentityが適切なアクセス権限の確認を再度しましょう。通常はアクセス権限が問題であることが多い。例えば、デフォルトのCドライブより、wwwrootフォルダを別のドライブに作成する際にアクセス権限の設定を忘れたりすることがあります。 4.t.txtアクセスができたら、サイトコアのログが生成しない場合は、今一度ASP.NET FRAMEWORKがインストールされていることを確認しましょう。 もしインストールされていなかったらもしくは再度インストールするには、  英語:http://support.microsoft.com/kb/306005 日本語:http://msdn.microsoft.com/ja-jp/library/k6h9cz8h(v=vs.100).aspx よく使うのは “%windir%\Microsoft.NET\Framework\version\aspnet_regiis.exe” -I OS がWindows Serverの場合: 英語:http://www.iis.net/learn/application-frameworks/scenario-build-an-aspnet-website-on-iis/configuring-step-1-install-iis-and-asp-net-modules 日本語:http://technet.microsoft.com/ja-jp/library/hh831475.aspx よく忘れがちな機能をインストールしていることを確認: 5.通常この時点でサイトコアのログが生成されるはずです。 ログファイルの情報でトラブルシューティングすればいいです。 もし問題がデータバース関連であれば、例えばログインできないの場合私は下記の手順でトラブルシューティングします。 1.まずウェブサーバーからSQLサーざーへのアクセスを確認します。   ウェブサーバーからSQLサーバーへPINGします。   ウェブサーバーから既存のSQLサーバーへ接続し、外へのアクセスを確認  SQLサーバー上のポートがオープンしていることを確認  SQLサーバーのファイアウォールを一時的に停止  SQLサーバーへのアクセスがある場合、sql マネジメントスタジオを使って、SQLServerの認証でログインをしてみます。                エラー18456の場合は今一度認証モードを確認しましょう。   テキストファイルを作って、ファイルの拡張しをUDLにして、接続を試す。        この時点でSQLへの接続ができるはずです。。。

[Sitecore][Page Editor]XHTMLの検証エラー

最近Sharepointのインポートをばっかりやっていました。インポートしたコンテントがXHTML検証エラーがばっかりだったので、この古い問題に書いてみたいと思いました。 最初にこのXHTML検証エラーをみたのはがサイトコアバージョン5でした。 これはサイトコアのディフォルト設定で有効なXHTMLドキュメントであるかどうかの検証が有効となっています。 そもそも、サイトコアが使用しているXMLスキーマは7.2となっても変わっていません。   対策として、お客さんによって、検証を外すのは一番簡単だけど、基本的にお客さんからの要求がない限り、エラーとなるタグをこのXSDに追加しているのは現状です。 HTML5を主に使用している場合、 html_5.xsdを参照することをすすめます。 http://blogs.msdn.com/b/webdev/archive/2009/11/18/html-5-intellisense-and-validation-schema-for-visual-studio-2008-and-visual-web-developer.aspx 私の場合はSharePointからのインポートなので、エラーとなるタグを順番に追加することにしました。ただ、コンテントはたくさんインポートしているので、下記のコードでエラーが有るアイテムをリストして、そして、順番にエラーが発生するタグを追加した。 <%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”GetValidationErrors.aspx.cs” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head runat=”server”> <title></title> </head> <body> <form id=”form1″ runat=”server”> <div> <asp:Literal runat=”server” ID=”ltlError” /> </div> </form> </body> </html>   using System; using System.Linq; using System.Web.Caching; using Sitecore.Data; using Sitecore.Data.Items; using Sitecore.Data.Validators; […]