We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6158
    • 224 Posts
    こんにちは。

    Manager で編集を行っていると、ドキュメント編集画面の作業領域、特に
    「Document Content」部分が画面からはみ出てしまうので、必要な部分のみを
    表示するようにソースを弄 (いじ) りました。

    添付の画像を見れば一目瞭然ですが説明すると、編集時に現れる4つのヘッダ
    - Document setting
    - Document content
    - Template Variables
    - Access permissions
    のみを表示し、その内容 (入力領域) は非表示にします。

    編集を行いたい部分のヘッダをクリックすると、その入力領域が表示され、再
    度そのヘッダをクリックすると、入力領域が非表示になるようにしています。

    具体的な変更内容は以下の通りです。
    mutate_content.dynamic.action.php:1148
    
    <script src="media/script/scriptaculous/prototype.js" type="text/javascript"></script>
    <script src="media/script/cookiemanager.js" type="text/javascript"></script>
    <script type="text/javascript">
    	var cm = null;
    	(function () {
    		cm = new CookieManager ();
    		var form = document.forms['mutate'];
    		var docId = Form.getInputs (form, 'hidden', 'id')[0].value;
    		var key = 'hid_'+ docId;
    		var hid = (cm.getCookie (key)) ? cm.getCookie (key): 0;
    		var secheads = document.getElementsByClassName ('sectionHeader', form);
    		var secbodies = document.getElementsByClassName ('sectionBody', form);
    		$A(secbodies).each (function(body, idx) {
    			if (idx != hid) {
    				Element.hide (body);
    			}
    		});
    		$A(secheads).each (function(head, idx) {
    			Event.observe (head, 'click', function(evt) {
    				var el = Event.element(evt);
    				Element.toggle (el.nextSibling);
    				if (el.nextSibling.style.display != 'none') {
    					cm.setCookie (key, idx);
    				}
    			}, false);
    		});
    	})();
    </script>
    


    読み込み完了時に実行される js のコードが何処なのか探すのが面倒だったの
    で、html の最後に付け足しています。ドキュメントだけでなく、テンプレート
    の編集画面でも可能でしょう。

    +追加
    保存したり、別ページから戻ってきたりすると、さっき開いてた作業領域が閉
    じられているのも面倒なので、cookie にさっきまで開いていた領域を記録する
    ように変更しました。

    バグや気をつけることがあったらこのトピックに書き込んで教えて下さい。特
    に難しい事をやっている訳ではないので、入念なテストは行っていません。
    # もしかしたら、同機能のスニペットや js が既にあったりして。