2010年11月6日土曜日

外部フォームカスタマイズ準備

concrete5のデフォルトのフォームでは、送信者のメールアドレスが、送信者欄に記載される仕様じゃありません。
ので、外部フォームを作り変えようかと。

で、以下はいろいろ参考になるサイトなどのリンクメモです。

::::::::::::::::::::::::::::::::::::::::::

ブログ酔生夢死さんに、外部フォームの作り方メモが連載されていて、ありがたいので、勝手ながら自分用にインデックス貼っておきます。

1、外部フォームの話し(クラス名の付け方など)
2、バリデーション
3、日付と時間フィールドについて
4、画像認証(キャプチャ)について
5、メール送信
、まとめ(サンプルコードあり)

勉強になりますm(_ _)m

で、本家ドキュメント

日本語公式サイトのブロックの作り方ページ

外部フォームサンプルコードを配っておられるmyselfArchiverさんサイトページ

2010年11月3日水曜日

シングルページのカスタマイズ準備

シングルページのカスタマイズがしたくて、準備開始です。

公式サイトに解説があったので、リンクメモ。
http://concrete5-japan.org/help/design/customize-single-pages/

/concrete/theme/core/concrete.php
をちょいちょいと修正すれば良さそう。

ヘッダーの画像を無くしたいと思っていたのですが、すぐできそうですね。

あとは、/config/set_theme_path.php
を少々変更、と。

2010年10月31日日曜日

concrete5であるページにだけheader.php内にてコードを適用させたメモ

concrete5であるページ(例:home)だけheader.php内で、jQueryを適用したい場合などは、以下のようなコードが有効でした。

<?php $c = Page::getCurrentPage();  $currentcID=$c->getCollectionID();if($currentcID==1){ ?>
 <script type="text/javascript">
  $(function(){
   $('#test').css({opacity:0,left:200});
  });
 </script>
 <?php } ?> 

Page::getCurrentPage()でページオブジェクトを取得し、->getCollectionID()でページのcIDを取得。
そして、上記の例ではcID==1すなわち、homeのページに対してjQueryコードを適用する、ということをしています。

備忘録とご参考まで。

2010年10月18日月曜日

droppyとIE6とz-indexと。

jQueryのプラグイン、droppyを使っていて、IE6でおかしなことになっていることに気づきました。

表示順がおかしくなっている。。。

色々調べて、z-indexとposition:relative;の関係だと判明。
http://learnaboutcss.blogspot.com/2010/10/ie6z-index.html

無事、IE6でも表示できるようになりました。
(droppyでliが上下二段になると、どうしようもないかも。。orz IE6アップグレードを進めていくしかないですね。。。)

xamppでログインできず焦りました。

本番環境のものをローカルで検証するため、
xamppに環境を作ってみました。

すると、なぜかログインが出来ない。。
DBを見てもちゃんとインポートは完了しているのにおかしい。。

とやや悩んで、よく考えたら、
config/site.phpのpassword_saltの値をもってきていなかったのでした。

持ってきたら、無事ログイン完了。

ほ。

2010年10月12日火曜日

databese managerが便利

concrete5でDBを参照する際、phpMyAdminで参照するのは一般的だろうが、
concrete5のアドオンで「database manager」という便利なものを使う手もある。

http://www.concrete5.org/marketplace/addons/database-manager/

無料。

concrete5の管理画面で、シームレスにDB内容を参照でき、
sqlも実行できる。

2010年10月11日月曜日

z-index.やはり鬼門。

concrete5のテーマを作っていて、
ブロック追加をするクリッカブルな領域に、z-index指定をするとやはり、追加出来なくなる現象に悩みました。

(前にも書きました。http://learnaboutc5.blogspot.com/2010/07/z-index.html 良く覚えていなかった。。)

やっぱり、concrete5でクリッカブルな領域にz-indexを指定するのは鬼門です。

2010年10月9日土曜日

ページタイプのDBにおけるフィールド名は、ctIDの様子。

無駄につくってしまったページタイプを削除しようとしたら、
そのページタイプを適用してしまっているページを削除しないことにはそのページタイプは削除できない、という当然な警告が発せられ困った。

そのページタイプを適用したページが見つからない。。

で、データベースを直接見ることにした。

まず、ページタイプは、ctIDとしてPageTypesに定義されている様子。

Pagesテーブルに、ctIDについての記述もある。

そこで、Pagesテーブルにて、SQL文を発行。
ctIDが9のページを探す必要があったので、
SELECT * FROM `Pages` WHERE ctID=9
としたら、二ページ出てきた。

一つのページは空だったので、削除。
もうひとつは、該当ページに行って、ページタイプを変更。
それでやっと無駄なページタイプを削除できてすっきりした。

良かった。

追記:空だったページは、デフォルトページだったことが判明。空だったページを削除すると、そのページタイプの大本が無くなる。あとは、管理画面「ページとタイプ」の「ページタイプ」内で、該当ページタイプを「編集」し、一番下にある「削除」を実行すればOK。

ブラウザの使い分けで、スピーディーに編集

普段、win版のfirefoxをメインブラウザにしている。
とても重宝しているのだが、アドオンを色々入れている関係か、動作が若干重い。

特に、concrete5の編集時などは、重めの動作になる。

そこで、firebug等を使ってのcss修正など、サイト制作、開発にはfirefox、
その他では、chromeやOperaなどでやると、けっこういい感じ。

やはりいいブラウザが増えてきて、
特にconcrete5のようなjavascriptを多用したCMSの編集には、
javascript処理の速いブラウザは良い。

ブラウザが各種出て、ありがたいなあ。

IE9もけっこうjavascriptは処理が良くなりましたね。まだbetaだが。

■追記:firefoxといえば、IPv6対策をすると,処理が早くなるかもしれない。自分の場合は体感できるぐらい早くなった。IPv6は、まだ切っていて良いかも。
http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=firefox+ipv6

Droppyについて。

http://onehackoranother.com/projects/jquery/droppy/

droppyというjQueryのライブラリで、ドロップダウンメニューを使っている。
http://web-do.com/
これは、とても便利。

元々、concrete5はjQueryを根幹で使っているので、
わざわざjQueryを読み込まなくても$(function(){$("#test").css("background",""#fff")});などとしてしまえばすぐ使える。

 なのでjQueryのライブラリはとても使いやすい。
(あまり使うと、処理が重くなるのはもちろんだが)

オートナビに、「カスタムテンプレート」でdroppyのjs、およびcssを読み込ませてやるとOK.
カスタムテンプレートの使い方は、以下に。

http://concrete5-japan.org/help/new_help_pages/block_custom_template/

カスタムテンプレートは、concrete5でとても便利な機能だ。
ありがたい。

Droppyが崩れる。。(便利なドロップダウンメニュー)

concrete5でドロップダウンメニューを使おうと思い、
「droppy」というjQueryライブラリを人から教えていただいて、気に入って使っている。
http://web-do.com/

concrete5では、
.nav-selected
.nav-path-selected
という二つのクラスでオートナビブロックのul,li,aの各要素が装飾できる。

それを使って、droppyのカスタマイズを色々しているのだが、、

今、うちのサイトでdroppyを使っていて、Operaでだけなぜか表示が崩れている事に気付いた。

firefox,chrome,IE8,IETesterでのIE6,Win SafariではOKだが、なぜかまだ原因が掴めない。
どうも、崩れているli,aの部分だけ、1px下に広がっているように見えるので、それが原因と思われるが。
なんでかな。。

::::::::::::::::::::::::::::::::::::::::::

閑話休題。

Droppyってそれにしても便利。

次の予定では、concrete5本家によるアドオンsuperfishのように、
子ページがあれば「>>」といった記号を表示して、子ページがあることが分かる実装をしたい。
PHPのソースを読み解かねば。。。

::::::::::::::::::::::::::::::::::::::::::

追記:問題解決。どうも「FL・AS」というように、中黒を全角で入れていたのが問題だったかもしれない。中黒点を抜いて半角文字のみにしたら、無事解決。全角半角対策って、面倒なことが多いな。

2010年9月29日水曜日

RSSの文字数変更

concrete5でRSSブロックにて排出される文字数の変更メモです。

concrete/helpers/text.phpのshortText()関数内で表示文字数が定義されているので(255文字)、

/helpers/text.php
を作って(/concrete/配下の元ファイルはそのまま)、
その中に全部そのままコピーし、


class TextHelper{

class SiteTextHelper extends TextHelper{
にして、

function shortText($textStr, $numChars=64, $tail='...') {
のように64文字にしてみたらいけました。

良かった。

参考:concrete5日本公式サイト 
http://concrete5-japan.org/help/developer/basic_structure_of_concrete5/

2010年9月28日火曜日

サーバ移転でDBエラーに悩まされて。。

サーバ移転でDBエラーに悩みました。

結局、移転前のDBサーバに実験環境のDBが残っていたのを、
本番環境のDBだと勘違いしてインポートしていたのが原因でした。

それでテーブルが見つからない、とエラーが出て、えらく泡をくいました。

実験環境のDBは、しっかり要らなくなった時点で削除することを徹底しなくては、と肝に銘じた次第です。

2010年9月25日土曜日

cronでconcrete5をサーバ上解凍できたので,嬉しくてメモです。

concrete5を快適に動作させることができるサーバを探して、
sixcoreが良さそうと試行中です。

しかしSSHが非公開で、ファイルマネジャーに解凍コマンドもないので、
concrete5の全ファイルをアップロードするのに非常に時間がかかる。

困ってサポートに電話したら、「cronで代用できるかと思いますので御願いします」ということ。

「cron(コマンド)って、自分にはハードル高し!」と思いつつ、
FTPではタイムアウトしてしまうので挑戦していました。

で、やっとうまくいきました!!!(実際、小躍りして喜びました。(笑))
サーバ学習記録用ブログにメモしておきました。

http://learnaboutserver.blogspot.com/2010/09/cron.html

2010年9月14日火曜日

UI Tabにフィード

concrete5で、jQueryのTabsをつかって、複数RSSフィードを実装しようと思い、試行錯誤したのでメモです。

普通のRSSブロックをTabsの各コンテンツ(divタグ内)にしようと思うも、自動でid,classがふられたdivが生成されてうまくいかず、まず悩みました。
そこで、HTMLブロックを使ってdivでくくってやろうとしますが、RSSフィードをうまくラップできません。
(RSSフィードブロックの上下を<div id="tabs-1">と</div>でくくってやろうとしても、勝手に閉じられてしまいます。。。 )

最後の手段として、無料のPHPブロックを導入し、そいつで無理矢理HTMLをechoで吐き出させ、
Google AJAX feed APIをつかってFeedさせたら無事表示^^
良かったっす。
(普通にフィードさせるなら、Google API+HTMLブロックで十分ですね。自分のケースでは、他にもPHPで読み込ませるものがあったので、PHPブロックが必要でした。)

あ、jQueryのUIは、基本がすでにconcrete5の中に組み込まれているので(要バージョンチェック)、
コンフリクトしないtabsのソースとcss,imagesをひっぱってきて、
それぞれ、トップディレクトリ配下のCSSとJSディレクトリ内に配置し、
「追加ヘッダー要素」でインクルードさせました。該当ページの。

この「追加ヘッダー要素」がかなり使えるしろものですが、
concrete5の編集時に現れる上のバーの「設定」の「カスタム属性」の中で「追加ヘッダー要素」を選ぶと、書き込み欄が出るので、
そこに普通のHTMLやPHPファイルに書くように、jsファイルのインクルードや、スクリプト書きができます。

あ~それにしても、Tabs+RSS Feedが実現できて幸せでした。
便利!

2010年8月11日水曜日

title表示の変更方法

http://concrete5-japan.org/help/new_help_pages/how_to_customize_page_title/
こちらに、title表示の変更方法が書かれていてありがたいのですが、
なぜかこれを変更しても反映されず、しばし悩みました。

はっと気づくと、テンプレートファイルのheader.phpに、<title>などとべた書きしていたではありませんか。。。

あほでした(笑)
解決して良かったのですが。

2010年7月15日木曜日

z-indexの扱い、少し難しい。。

concrete5では、編集可能ブロック(灰色のオーバーレイ部分)をクリックすると、
すぐに編集モードに入れるのがウリです。

が、その機能がz-indexによって実現されているようで、
記事内容にz-indexを指定してしまうと、
ブロックがクリッカブルにならなくなってしまう、という現象に悩まされました。

IE6でz-indexによる表示エラーも発生したりして、
z-indexはやや鬼門かな、と少し考え中な自分です。

個別ページの独自CSS設定方法メモ

個別ページに、独自のcssを適用したい、と思い、ちょっと試行錯誤したのでメモです。

concrete5をいんすとーるしたディレクトリ内に、cssというディレクトリがあるので、
そこにcssファイルを置けばOKでした。

そして、
<link href="/css/sub.css" rel="stylesheet" />みたいなコードを、「追加ヘッダー要素」に書いてやればOK。
(cssの前に/が必要でした。これがなくて、反映がされずしばし悩みました。)

また、backgroundで背景画像を使う場合は、そのcssディレクトリ内に、imagesのようなディレクトリをつくってやり、
その中にアップして、
background:url(images/pic.jpg);
みたいに指定してやればOKでした。

themeディレクトリ内でないことに注意です。

2010年7月13日火曜日

レイアウト機能ではまった

5.4.0.5から搭載されたレイアウト機能ですが、はまりました。
IE6でまともに表示されなくて,数時間弱りました。
(あるはずのブロックがまるまる表示されない状態でした。)

問題は、2カラムレイアウトをつくって、
その下に1カラムのレイアウトブロックを移動で持ってきたことが原因だった様子。
divの入れ子が閉じられてなかったのかな。。

で、2カラムの後に、再び「新規レイアウト」ということで、
1カラムレイアウトをつくって、
そこに普通にまたブロックをつくったらOKでした。

複数カラムレイアウトにして,再び1カラムのレイアウトに戻すときは、
新規レイアウトで「1列」とするのが無難のようです。

同様にはまる方もおられるかもしれないので、メモしました。

2010年6月22日火曜日

header.php内でのjQueryライブラリの読み込み

concrete5にjQueryライブラリの読み込みや、コードの記述をheader.php内でするときのメモです。

例えば、corner.jsをインクルードするときは、以下のような感じ。

    <script type="text/javascript" src="<?php echo $this->getThemePath().
'/js/corner.js'?>"></script>
    <script type="text/javascript">
        $(function(){
            $('#left_sidebar').corner();
            $('#right_sidebar').corner();
        });
    </script>

これで、同一テーマ内の前ページで、該当id全てにcorner()を適用できる。
便利だ。