■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

Re: 画像をクリックしてページ遷移する方法は?

goichi > Re: 画像をクリックしてページ遷移する方法は? @ 2012/6/10 11:10
どうもです(^^
まずは修正させてください(すみません・・・)
とりあえず、リンクが複数あると先の記述では対応できませんでした。すみません。「preg_match_all」を使わなきゃいけなかったんですね。ウチのローカルでは画像リンクだけしか作らなかったので、気が付きませんでした。。。

書き換えの箇所を
	<?php 
	
	//あなたのサイトのURL(最後のスラッシュまで必要!)
	$yourSite = 'http://localhost/basercms2.0/';
	
	//記事内容を取得
	$blogPostData = $blog->getPostContent($post,true,true);
	//aタグを検索対象とする。
	preg_match_all('/<a ("[^"]*"|\'[^\']*\'|[^\'">])*>/',$blogPostData,$aTags);
	//ブログの名前取得
	$blogName = $post['BlogContent']['name'];
	//ブログの記事id取得
	$blogPostId = $post['BlogPost']['id'];
	//colorboxの対象になっている画像リンクを置き換える。
	foreach($aTags as $aTag){
		for($i=0;$i<count($aTag);$i++){
			if(strpos($aTag[$i], 'rel="colorbox"')){
				//置き換え実施。
				$blogPostData = preg_replace($aTag[$i],'a href="'.$yourSite.$blogName.'/archives/'.$blogPostId.'"',$blogPostData);
			}
		}
	}
	//表示を行う。
	echo $blogPostData;
		
	?>

のようにしてみてください。これで、とりあえず複数のリンクがあっても対応できるのではないかと思います。
ただ、idがずれるというのとは別の問題かもしれません。

2つ目のブログの「管理画面>記事一覧」で確認してみると、一つ目の記事Noは1なのですが、その記事の編集画面のURL末尾は「/17」なんです。
この末尾数字がどのような法則で作られているかわかりません。

記事NOはブログごとに振り分ける番号ですが、idはブログの別に関わらず、トータルで振られる番号です。いま、2つ目のブログの記事NOが1番で、url末尾のidが17というのは、おそらく「2つめのブログの記事としては1番目、全体では17番目の記事」という事になると思います。

処理中で使っている
$post['BlogPost']['id']

の中には記事idが入るはずですが、何かしらの事情で、上手に動かなかったのかもしれません。私のローカル環境は、同じく「2.0.0」で試していますが、複数ブログの時でも、きちんとidが入っています。

何はともあれ、上記の処理を修正してみてください。もしかしたら、そのうちもっと詳しい方が出てきてくださるかも知れません。。。m(__)m
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
8 人のユーザが現在オンラインです。 (8 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 8