Joomla!1.5.8からでしょうか、1.5.7か1.5.6と比較するとそうでなさそうなのでたぶんそうでしょう。フロントエンドからの新規投稿時に公開終了日時が現在時刻で初期化された値がすでに表示されてしまっていて気づかずにそのまま保存すると、公開と同時に終了となってしまいます。
Joomla.orgのフォーラムでもあがっていました。Joomla!1.5.9で修正されると思います。
こういう仕様だと言われればそうなのかもしれないが、使い勝手が悪い。
なので少し変更してみました。
Root/components/com_content/views/article/tmpl/form.php
$config =& JFactory::getConfig();
$publish_up =& JFactory::getDate($this->article->publish_up);
//$publish_down =& JFactory::getDate($this->article->publish_down);
$publish_up->setOffset($config->getValue('config.offset'));
//$publish_down->setOffset($config->getValue('config.offset'));
$publish_up = $publish_up->toFormat();
//$publish_down = $publish_down->toFormat();
$publish_down = '';上記のようにすることで解決します。
本体をさわりたくなければ、テンプレート側でオーバーライドしてやれば良いですね。
ページのソースを表示してdescription部分を見るとそのページで開いている最後(一番下)の記事のdescriptionが、最初に表示される。これは、Joomla!のヘッドタグに追加するメソッドが後からの分を登録済みのものの前に追加するように書かれているからです。
そこで変更してみました。
Root/includes/joomla.php
$this->_head['meta'][$i][1] = $content . ', ' . $this->_head['meta'][$i][1];
を
$this->_head['meta'][$i][1] = $this->_head['meta'][$i][1]. ', '. $content;
として後から追加されるものは登録済みのものの後に追加するようにしてみました。これで最新のものが先に来るはずです。というより並び順の最初のものと言った方が良いのかな。
と、Joomla!1.5はどうかと気になったので確認してみましたが、記事単体を表示した状態でないとdescriptionに反映されない? ブログレイアウトのように複数の記事の場合は、サイトのdescriptionのみが表示されるようですね。
「日本語で9文字以上のユーザー名でユーザー登録すると文字化けする。」と問い合わせがあったので少しHackしてみました。
これは、Joomla!1.0.xの場合です。
これには2つの原因があります。データベースの文字数制限と、ユーザー登録時の文字数制限です。
まず、phpMyAdminでデータベースを開きます。
次にRoot/includes/joomla.phpを開き以下の行を変更します。(2826行目付近)
// check that username is not greater than 25 characters
$username = $this->username;
if ( strlen($username) > 25 ) {
$this->username = substr( $username, 0, 25 );
}
の25の部分をデータベースと同様に51に変更します。
// check that username is not greater than 25 characters
$username = $this->username;
if ( strlen($username) > 51 ) {
$this->username = substr( $username, 0, 51 );
}
以上で日本語17文字のユーザー名まで登録できるようになりました。
今回は、51としましたがお好みで3の倍数になるように変更されても良いのではないでしょうか。
最新のリビジョンのJoomla!1.5RC4をエクスポートして、比較してみました。
とりあえず、記事の日時の問題は以下でクリアしそうです。
JoomlaRoot/libraries/joomla/utilities/date.php
$date = date("Y-m-d H:i:s", $this->_date);
を
$date = gmdate("Y-m-d H:i:s", $this->_date);
へ
$date = strftime($format, $this->_date + ($this->_offset * 3600));
を
$date = gmstrftime($format, $this->_date + ($this->_offset * 3600));
へ 変更する。
Joomla!1.5 DemoをRC3からRC4に変更しました。手順は、先日テストサーバーで行ったのと全く同じで問題ありませんでした。VideoBarのデモのためにテンプレートに少し手を加えていたのを忘れていて消しちゃってから少しあわてましたが・・・。(全然バックアップせずに行っていた。)
少し違う点は、Demoとはいえ公開しているサイトなのでDemoRootにリダイレクトさせる.htaccessを設置してから行いました。