[Sitecore][Page Editor]RTE 段落分け

RTE(リッチテキストエィデター)にて改行を押す初期設定では段落分けのPタグが使われます。 これをBRタグにけるには下記の設定をweb.config にて変更すればいい 初期設定: [css] <setting name="HtmlEditor.LineBreak" value="p" /> [/css] BRタグへの変更: [css] <setting name="HtmlEditor.LineBreak" value="br" /> [/css] *初期設定を変えずにBRタグを使いたい時は”Shift+改行”を使えばいいです。

[Sitecore][Tools]備忘録@開発環境ソフトとツール

先週新しいPCに切り替えたので開発環境をセットアップしました。いつかまたPCが切り替えられるので、日々使っているソフトとツールを忘れないように書き留めたい、 一般的なもの Microsoft Office Microsoft Security Essentials 開発系ソフト Visual Studio 2010 Ankhsvn (http://ankhsvn.open.collab.net/downloads) Sitecore Rocks (http://visualstudiogallery.msdn.microsoft.com/44a26c88-83a7-46f6-903c-5c59bcd3d35b) TDS(https://www.hhogdev.com/Purchase/Team-Development-for-Sitecore.aspx) ReSharper  (http://www.jetbrains.com/resharper/download/index.html) Reflector(http://www.red-gate.com/dynamic/products/dotnet-development/reflector/download) Regulator (http://sourceforge.net/projects/regulator/) Nunit(http://www.nunit.org/index.php?p=download) Ndoc(http://sourceforge.net/projects/ndoc/) GhostDoc(http://submain.com/download/ghostdoc/) MS SQL Database VMware IIS7, ASP.NET framework Hosts File Manager for IIS7 (http://iishosts.codeplex.com/) TortoiseSVN (http://tortoisesvn.net/downloads.html) Notepad++ (http://notepad-plus-plus.org/download/v6.3.1.html) 開発ツール Firefox Firebug (http://getfirebug.com/) Web Developer extension (http://chrispederick.com/work/web-developer/) Tile Tabs (https://addons.mozilla.org/ja/firefox/addon/tile-tabs/) PDF-IT add-on create PDF […]

[Sitecore][Support]サイトコアのサポートチケットを開く

先週、新人のサービスサポートの社員がサイトコアのアップグレードをする際に有った問題有ったので、彼の上司にサイトコアのサポートセンターに聞くようにと指示されたようです。二日たってから、状況どうなっているのと聞いたら、サイトコアのログファイルとWeb.Configを添付してくれといわれた。 今後新人の方にこの基本の基本であるサポートのチケットを開く際に心得を書き留めたい。 現在サイトコアのサポートは基本的に同じ日に返答をしてくれます。三年前にアメリカのオフェスにはAlexさんだけだった時、返答が二日がかかるのは普通だった。それでも、いかに問題と必要とされる情報を一発でサイトコアのサポートの方に届くのが大事です。 問題を詳しく説明する。 大学時代読んだ本で品質管理にて問題を報告する時3Wのフォーマットが有効だと覚えています。 What I saw,(見た問題) What I did, (問題発生手順) What I expected to see. (期待する結果) 例を挙げると: 問題: 弊社のCMサーバにて複数のユーザーがログインすると下記のエラーが発生しています。 ”エラーメッセージ。。。。”スクリーンショットを添付 期待する結果: 複数のユーザーがログインでき、エラーが発生すべきではない。 問題発生手順: 三台のPCよりサイトコアへ同時ログインし、最後のユーザがログイン画面にて、エラーが発生する。 できる限りの補充情報を提供する。 1.  試したこと、たとえば別のブラウザ(試したブラウザのバージョン)を試しましたが同じ結果 2.Googleで関連の情報を検索し、試した結果など、 3.参照したマニュアルがあれば、そのリンクを提供する 2。問題発生する背景、先週までに問題がなく、今週となって発生した問題であす。  コードに更新があるかどうか、ウィンドウズの更新があったかどうか、 3.Googleで関連の情報を検索し、試した結果など 問題を以下にサポートの方にわかってもらえるため、関連な添付ファイルを添付しましょう。 基本的なもの: 1.Web.Config (Website\sitecore\sitecore\admin\ShowConfig.aspx) 2.ログファイル ( (Website\Data\logs) 詳細なもの:     1.IIS のログファイ            2.WindowsのEventログ 3.サイトコアパーケージ コンテントアイテムに関連する問題はそのアイテムをパーケージして提供すす。 4.サンプルコード、dll 問題を再現できるサンプルコードのdllがあれば、提供する。 […]

[Sitecore][Back Up DB]サイトコアDBのバックアップ

今日はサイトコアのデータベースバックアップについて書きます。 普段の作業でサイトコアサイトは五つのデーだベースがあります。(Core, Master, Web, WFFM, Analytics)これにカスタムのデーだベースを加え、一つのサイトは六個のデーだベースになります。サイトをパックアップまたリストーアはSQL Server Management Studioのユーザインタェースタスクにてすればいいです。先週、会社から新しいPCをもらい、既存のサイトを新しいPCへ移しなければなりません。ざっと見れば、120以上のデータベースをバックアップ/リストーアをしなければなりません。これをManagement Studioのユーザインタフェースタスクでやれば、かなり時間がかあるので、SQLクエリを使うことにした。今回はデータベースを移すためのSQLクエリを纏めました。 データベースバックアップ [css] DECLARE @DBList VARCHAR(MAX) SELECT @DBList = COALESCE(@DBList+’,’ ,”) + Name FROM master.dbo.sysdatabases WHERE [name] LIKE ‘%local%’ print @DBList USE [master]; DECLARE @SQL nvarchar(255) , @Pos INT , @Loop BIT , @vcDBName VARCHAR(64) , @vcDBNames VARCHAR(1024) , @vcBackupFileRoot varchar(125) SET @vcBackupFileRoot = ”’C:\SQL\BackupRoot\’ + […]

[Sitecore][Publishing]だれがパブリッシュしたの?

以前サポート業務をした際によくお客さんに何でサイトをパブリッシュしたのと聞かれ、いいえ、してないよと言っても信じてくれなかった。よくあったのは、自社の社員がアイテムを更新し、パブリッシュはせず、お客さんの最終確認を得ようとします。しかし、お客さんは過ってサイトをパブリッシュして、サイトにエラーが発生。アイテムの最後更新者をみては自社の社員であったので、お客さんにあなたの社員が最後にアイテムを更新したのでパブリシュしたに違いと言われたことがもある。 例を挙げれば、サポーターの高志君がアイテムを更新し、お客さんに確認をするようにお願いする。お客さんの浩様が誤ってアイテムをパブリッシュする。ただ、コードの変更がまた更新していないのでサイトにてエラーとなった。浩様が自分がパブリッシュしたことも覚えていないので、もしかして、最終の更新者である高志君がサイトを壊したのではと思い始める。 誰があるアイテムをパブリシュを探すにはログファイルをみることです。 アイテムを検索すれば、最後に誰かパブリシュしたのは一目瞭然です。 ログファイルを見るには、サイトコアのログビューアーにてみればいいです。 もしサーバへのアクセスがあれが、だーターフォルダにあるログファイルフォルダにてログファイルをみればいい これをお客さんに見せれば納得するはずです。ただ、一般のお客さんにログファイルを検索させるわけいけません。これについて、同僚のマイケルと話をしたら、彼はカスタムフィールドを定義し、カスタムPublishItemProcessor を追加すりことでこのパブリシュの情報をサイトコアにて見ることができるようにできます。詳細およびコードはここで掲載されています。 また、サイトコアにてカスタムツールを作って独自のレポートを作ってもいいです。カスタムのツールを作るには、ここを参照すればいいです。 お客さんが誤ってパブリッシュしたこともよくあるので、開 発者として、このようなのことを事前突き止めることが大事です。ワークフローを使ってある程度防ぐことができますが、ただ莫大なアイテムを頻繁に更新する と、細かく確認せずに一気に承認しパブリッシュするお客さんもいます。それをさらに防ぐにかいくつかの方法があります。 アイテムのパブリッシュを停止する。Sitecore CMS 6 コンテンツ クックブックの 4.3 アイテムをパブリッシュ停止にする方法にて詳細が書いています。 パブリッシュ禁止。これはサイトコアについてくる基本の機能で、パブリッシュセクションにて、パブリッシュ禁止をチェックすれば、アイテムはパブリッシュされません。 個人的にはこのパブリッシュ禁止が好みます。なぜなら、 これはサイトコアの既存フィールドなので、簡単なツールを書いて、テンプレートやアイテムのパスをもどに、簡単に更新することができます。カスタムフィー ルドもいいですが、将来サイトコアーのアップグレードする際にこれらのカスタムコードの更新も考慮しなければなりません。サイトコアーは非常に拡張性と柔 軟性を優れているので、拡張しやすいですが、これまでにサイトコアーのアプグレードをいくつかしてきたことから、それぞれのバージョン更新にて、既存 フィールドがなくなったり、新しいフィールドが追加されたら、関数の変更など沢山の更新があります。拡張した分新しいバージョンでも動作するかどうかを考 慮しなければならならないので、私はできるだけ既存の機能使って開発を心得ております。ただ、サイトコアを拡張するのは楽しいタスです。拡張性について、John West のブログにてある記事が参照になるかも。

[Sitecore][Template]テンプレートを作る

テンプレートを作るって結構簡単ですが、幾つかのサイトを構築してから、 このテンプレートを作るには下記のように自分なりの習慣を付けることをしています。 1.テンプレートを追加します。 テンプレートを挿入したいフォルダにて右クリックで ”新しいテンプレート”をすれが、 ウィザードに従ってアイテムを作成すればいいです。今回SEOのテンプレートを例に作ってましょう。 番外編: 新人にメニュが切れているけどといわれてことがある。 れはIEの設定をしていないから。sdn.sitecore.netにて、IEの設定にて設定をすればいい。 2.SEOアイテムを作ったけど次はなに? 私は最初にするのはスタンダードバリューを作ることです。なぜなら、 サポートのタスクで、サイトを半年以上運営していたサイトでお客さんから   新しいフィールドを追加したいと。テンプレートをみるとスタンダードバリュー が設定していなかった。本当にテンプレートのスタンダードバリューで追加 すればいいの仕事が、結局コードでアイテムを更新するまでという手間が かかったタスクだった。このスタンダードバリューはアイテムの初期値のようなのものです。このスタンダードバリューにてフィールドだけではなく、プレゼンテーション、挿入オプション、セキュリティの設定ができるので非常 に便利です。さて、スタンダードバリューを追加しましょう。 3.わかりやすいようにアイコンを付けましょう。 お客さんに分かりやすいように、それぞれのアイテムに独自のアイコンを付けましょう。 スタンダードバリューのアイコンも更新しましょう。 4.次にテスト用のフィールドを追加します。 フィールドを追加したところで私は考えるのはこのセクションはどの位置にて表示   するかです。例えば、ルートアイテムにて、沢山のセクションがあので、お客さんが   頻繁に使うセクションをトップの方にもって行きたいです。今回作ったテンプレートを ルートアイテムに追加してみました。下記のように、結構上の方に位置しています。 SEOはあまり使わないので、下の方へ持って行きたいです。これはアイテムの  コンテンツの”並べ替え順序”にて数字を挙げればいいです。例えば100  から300にすれば、SEOデータセクションはしたの方にもって行かれています。  最初にサイトを構築する際に、その順番をあらかじめ設定するようにしています。  例えば、よく使うセクションは100から300、あまり使わないセクションは  700から999 5.スタンダードバリューのプレゼンテーションを設定しましょう。 これは初期値のプレゼンテーションを設定することによって、もし、お客さんは誤ってプレゼンテーションを変えた場合は、リセットすれば、 初期値に戻れることが出来ます。 6.スタンダードバリューのセキュリティを設定しましょう。 7.スタンダードバリューの挿入オプションを設定しましょう。 例えばSEOアイテムにて”サンプルアイテム”のみ挿入できるように設定すれば、   お客さんが新しいアイテムを挿入する際に間違ったアイテムを挿入しなくでも済む。 8、フィールドのソースを指定する。 使っているフィールドタイムによって、そのソースをしてしましょう。 例えばイメージの場合はソースにて/sitecore/media library/Images/に設定すれば、お客さんはイメージを追加する際に、決まった場所にてイメージを見つけること   が出来ます。もし、データソースを使うコールアウトなら、そのパスを設定しましょう。Treelistsなら、データソースや、選択可能かどうか、表示させるかどうかの設定もしましょう。データ定義クックブックのTreelist パラメーターを参照すればいい。 9.$nameをスタンダードバリューへ追加しましょう。 $name: アイテムの挿入時にユーザーによって入力された名前これを設定すれば、新しいアイテムを挿入する際に名前が自動的に入れてくれます。 10.検証ルールを設定しましょう。フィールタイムにようって、検証ルールが必要かどうかを考慮します。よくあるのは、イメージのサイズです。また別の日にこのカスタマイズのイメージ検証ルールを書きます。 11.ベーステンプレートを確認しましょう。 ペーステンプレートを必要によって設定を忘れずに。 12.ワークフローを確認しましょう。 ワークフローの設定も忘れずに確認しましょう。

[Sitecore][Environment]開発の環境その二

さて、サイトコアをインストールしたところサイト開発をしていきましょう。手始めにファイルの構造、Visual StudioとTDSの基本的な設定をついて考えましょう。ファイル管理に関して開発者によってそれぞれの好みがありますが、個人として特にお客さんに指定されていなかったら、私は下記のようにファイル管理をします。 IISにてサイトを設定し、wwwrootにあるサイトのフォルダへ指定。サイトのデータペースファイルはwwwsql下に保管されています。wwwcodeにてTDSを使って、wwwrootへファイルのデブロイし、データベースへサイトコアのアイテムを同期を取ります。実際にVSにてこのセットアップをしてきたいと思います。 1.上記のファイルの構成をします。 2. IISにてdemo.comのサイトを追加します。 demo.com.slnを開いて、TDSのプロジェクトを作成しましょう合計三つのプロジェクトを作成します。 demo.com.core、TDSを使ってCOREのデータベースと同期を取ります demo.com.ux、TDSを使ってHTMLなどUXのファイルをwwwrootへデブロイします demo.com.master、TDSを使ってMASTERのデータベースと同期を取りまた、wwwrootへファイルをデブロイします。完了後ファイル構造は下記のようになります。 TDSを使って、CORE、MASTERのデータベースとの同期を取るに関して今後モジュールをインストールする際に詳細に書く予定です。今回はとりえず、必要なファイルを読み込んで、demo.com.masterを使って、ファイルそして、サイトコアのアイテム同期について書きます。 4.ソリューションができたところで、プロジェクトdemo.com.websiteに含みたいファイルをwwwrootからコピーします。 コピーしてきたファイルをプロジェクトへ含み、サイトコアのライブラリへの参照を追加します。 sitecore.com.masterにて右クリックし、プロパティを開きます。一般の設定をします。 次にbuildの設定をします。 ここで下記の設定を注意してほしいです。 Sitecore Web Url:ローカルのホスト名。 Sitecore Deploy Folder: これはデブロイフォルダ、wwwrootかにあるウィブサイト Install Sitecore Connector:これをチェックすれば、Sitecore Access Guidが作ってくれます。 この GUIDはTDSのウィブサービスに使われます。 ここで、demo.com.masterにてBuildをすれば、プロジェクトのファイルをwwwroot下にあるウィブサイトへデブロイされます。ここで試しにサイトコアにてアイテムを追加し、それをソリュウションへ同期するテストをしましょう。サイトコア→コンテツ→ホームにてTestアイテムを挿入。 sitecore.com.masterにて右クリックし、”Get Sitecore Items”を選択、 先ほど作成したアイテムを選択し、”Get Items”をクリック これで、先ほど作ったアイテムがプロジェクトに同期した。テストとして、サイトコアで先ほど作ったTestアイテムにて、タイトルを付けて、再度同期を取ってみよう。今度は”Sync With Sitecore”を使います。 先ほど変更したアイテムが表示さて、アクションのとして、何もしないか、プロジェクトを更新するか、サイトコアを更新するかそして、統合をするかのオプションがあります。このテストでプロジェクトを更新するとします。(UpdateProject)。 このように、他の環境へのデブロイをする際に、サブバージョンより、コードをチェックアウトをし、デブロいすれば、コードだけではなく、サイトコアの変更もデブロイすることができます。  

[Sitecore][Environment]開発環境とその流れ

よく新人に開発環境とそれぞれの環境へのコードのデプロイメントに関して聞かれたことがある。もともとオープンソースの開発だったため、サブバージョンを使って、開発→QA→リリースとそれぞれの環境設定ファイルを読み込んで製品をリリースしていました。ASP.NETの世界に入ってから初めてわかったことはそれぞれのお客さんの既存環境にいろいろと制限があり、特にセキュリティに関してその規制が一層複雑でコマンドラインでBuildだけでは行かないものです。これまでに私が使ったまた理解している開発環境、そして、それぞれの環境へのコードとデータベースのデプロイメントに関して書いてみたい思います。 一般的な開発環境との流れ ソース管理およびデプロイメントツールについて 私が知っている限りでは、どのサイトコアを開発する会社にもサブバージョンまた、なんらかのデプロイメントツールを使っています。私がこれまでに実際に使ってきたツールを下記のように書き留めます。これ以外にほかのツールも沢山あると思います。このリストの比較はただ私自身が感じたものです。 1. TFS(Team Foundation Server ) これを最初に書くというのは私はTFSに関してそれほど経験がないです。お客さんのプロジェクトで約三ヶ月間使っていましたが、ほかのサブバージョンと比べてそれほど優れていると感じていなかった。自分で設定をしたことがないので何もいえないですが、客先でこのTFSを運営するチームまでいたということは気楽に設定して運営できるものでないと思います。”それはちょっと面倒だなぁ”と思ったこは、コードを編集する際に一々チェックアウトをしないといけない。それに編集はVSで行わないといけない。20,30のプロジェクトを含むソリューションを5分も待って開いてWeb.Configで一行の編集を行うのはあまり好きではない。 2.Teamcity CI(Continuous Integration) これは私のお気に入りのツールです。特に小さいなチームでの共同開発で効率をアップします。セットアップも簡単。私はTeamcityをダウンロードして、Development、QA、Stagingの三つの環境をセットアップするには一日もかからなかった。三つのサーバはすべて社内のサーバだったのでそれぞれのサーバへリモートして設定を簡単に変更ができたこともありますが、一つの環境が設定が出来てその設定を流用することができます。また、GoogleでTeamcityに関してのページが沢山あることも参考になれます。 基本的にソリューションファイルをもとに、それぞれの環境設定ファイルを基づいてコンパイルし、ターゲットの環境へコードをデブロイします。Teamcityを導入するまで、もし誰かがエラーを含むコードをチェックインし、他のメーバーがチェックアウトしたらみんなコンパイルができずいらいらしていました。SVNでその”犯人”を探そうとしたものです。Teamcityは誰からチェックインしてから、設定によってすぐにコンパイルをします。もしコンパイルが失敗すれば、すべてのメーバーにメールなりSMSなり、最新バージョンのコードに問題があるので、チェックアウトしないようにと知らせます。これは案外時間を節約します。それに、それぞれの環境へのデブロイメントをスケジュールで設定し、ネットワークの空いている夜で行ったりすることもできます。 3.Team Development for Sitecore (TDS) Teamcityを使用しサイトコアを開発する際にみんなそれぞれの環境において、データベースを共有することを前提としています。時にはすべての開発メーバーが同じデータベースへのアクセスがない場合があります。例えばデータベースサーバが社内のアクセスのみと設定され、いざ自宅で作業をしようと思ったら、その日に行ったサイトコアの変更は社内で他のメンバーの変更と同期をとれなくなります。サイトコアの変更を書き出して、サイトコアのパーケージを作るか、データベースの同期ツールを走らせるかで同期を取ります。TDSを使えばサイトコアの変更をサブバージョンで管理ができるので、サブバージョンへのアクセスさえあればみんなの変更の同期を取れるわけです。TDSを半年ぐらい使用してきて、私にとってこれはサイトコアの共同開発で一番便利なツールだと思っています。後ほど、私が日々使っている環境設定を書きます。 環境別のデプロイメントについて 基本的にローカル→ディヴェロップメント→品質保証までは社内向けでオートデブロイメントを使用する場合が多い。TDSを使ってすべての変更がサブバージョンで管理されているので、ターゲットの環境でチェックアウトをし、デブロイメントをすればいいです。品質保証からステージングまたブロダクションへのデブロイメントは手動で行う場合がほとんどです。特に品質保証からステージングへは、ブロダクションへのデブロイメントを想定し、できるだけ同じ手順でデブロイメントをします。また、多くの場合はお客さんがすでにステージングにてコンテントを入力されているわけで、それを上書きされないようにとの考慮をしなければなりません。次回はTDSを使ったそれぞれの環境へのデブロイメントを書きたいと思います。

[Sitecore]最初にするべきこと

私は後輩にサイトコアをインストールしたまず二つのことをするように薦めています。まず、Adminのパスワードを変える ことです。そして、自分の アカウントを作ることです。なぜなら、サイトコアにて変更などを行う際に自分だけのアカウント で行えばだれ何を変更したのかを追跡することができます。み んなAdminだとだれてなにをしたかさっぱりです。 Adminのパスワードを変えよう。 まず、サイトコアのデスクトップへログインする。 オプションでデスクトップを選択し、ログインをクリックかまた、デスクトップをダブルクリックしでもOKです。 ユーザーマネージャーを開きます ユーザーの新規作成をクリックし、新しいユーザーを作ります。 ユーザー編集の画面が開きますので管理者ユーザーとしてしてし、ログオフします。 そして、新しく作ったユーザーでログインします。 Adminのパスワードを忘れた時 Adminのパスワードはaspnet_Usersと aspnet_Membershipテープルに保存されています。 まず、aspnet_Usersにて、AdminのユーザーIDを取得して、aspnet_Usersにてパスワード を更新すればいいです。ただ、パスワードは暗号化されています。私はたまに別のユーザーを作成し、 その暗号化したパスワードをAdminのパスワードにします。 もし、初期時のbにもどしたないら、コアのデータベースにて、下記のコマンドを走らせばいい。 [css] — START — UPDATE [aspnet_Membership] SET Password=’qOvF8m8F2IcWMvfOBjJYHmfLABc=’ WHERE UserId IN (SELECT UserId FROM [aspnet_Users] WHERE UserName = ‘sitecore\Admin’) — END — [/css]

[Sitecore][Tool]Hosts File Manager for IIS 7

ローカルで開発をする際によくホストファイルを変えたりします。今回はIIS7なのでIIS7用のホストファイマネージャをまずインストールしましょう。ホストファイルマネージャンはここからダウンロードすることができます。無料です。 私のマシンは64ビットですので、iishosts_1.0_x64.msi をダウンロードしました。 ホストファイルマネージャをインストールしてから、IISを開いて確認しましょう。 Manage Local Hosts をクリックすれば現在設定されているホストの一覧が出ます。右側にあるADDで 新しいホスト名の追加ができるしOpen In Notepad で通常のノードパッドを開きます。直接ホスト名をクリックすれば編集ができます。