Hatena::Groupadmire

開発ネタ物置 このページをアンテナに追加 RSSフィード

2009-03-08

[][][]Zend Framework 1.5.7 怠惰な導入まとめ 17:52 Zend Framework 1.5.7 怠惰な導入まとめ - 開発ネタ物置 を含むブックマーク

導入前の設定

Zend Frameworkの導入方法」以降を参照(.htaccess 作成まで)

http://www.ibm.com/developerworks/jp/opensource/library/itm-zend1/

※ ただし、windowsデフォルトでは.htaccessを使えないっぽい?

http://www.ponko2.com/win_htaccess.html


これだけファイルをつくればいいと思う

/(ルート

 /html

    .htaccess

    index.php

 /app/controllers

    IndexController.php

    ErrorController.php

 /app/views/scripts/index

    index.phtml

index.php

<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('../app/controllers');
?>

IndexController.php

<?php
/** Zend_Controller_Action */
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Controller_Action');

class IndexController extends Zend_Controller_Action
{
	public function indexAction()
	{
		$this->view->assign('val1', "テスト。");
	}
}
?>

Index.phtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
</head>
<body>
<p>
<?php echo $this->escape($this->val1); ?>
</p>
</body>
</html>

ErrorController.php

<?php
Zend_Loader::loadClass('Zend_Controller_Action');
class ErrorController extends Zend_Controller_Action {
	/**
	* エラー処理
	* @return void
	*/
	public function errorAction() {
		// 自動レンダリングしない(=viewを作らない)
		$this->_helper->viewRenderer->setNoRender(true);

		// 直接出力(若干手抜き)
		print "<p>error</p>\n";
		print "<ul>\n";
		$errors = $this->getResponse()->getException();
		foreach($errors as $error) {
			print '<li>' . $error->getMessage() . '</li>';
		}
		print "</ul>\n";

	}
}
?>

ここまで出来たら

ブラウザで以下のURLアクセス

http://ホスト)/index/


他のviewを使ってみたい

IndexController クラスに追加

	public function anotherviewAction()
	{
		$this->view->assign('val1', "indexのviewを使ってみるテスト");
		$this->render('index');
	}

参考文献

Zend Frameworkなまはげ カンタービレ

http://pluto-blog.blog.so-net.ne.jp/archive/c15251-1

PHPの種 ブログ Zend FrameworkのViewRenderer使用時に自動レンダリングしない

http://www.php-seed.net/blog/archives/42

rlcrilqthyrlcrilqthy2013/07/28 22:43uelxgbenjsf, <a href="http://www.knyfsvvkdd.com/">bmvidlfymp</a> , [url=http://www.ogyvfhzitd.com/]zcximjxjwy[/url], http://www.gdczynmfyc.com/ bmvidlfymp

kzyhblkudrkzyhblkudr2013/07/31 04:19zxlcvbenjsf, <a href="http://www.mbehyjegny.com/">fbummjzdnu</a> , [url=http://www.qonzsgauaj.com/]cyvrdihxto[/url], http://www.jgrgcyxggn.com/ fbummjzdnu

knqvkkuoqcknqvkkuoqc2013/11/24 03:29zauzgbenjsf, <a href="http://www.ojqiplttmt.com/">aqqvabcije</a> , [url=http://www.hdmavgtald.com/]rwjsrfyosa[/url], http://www.pdyauupxrj.com/ aqqvabcije

2008-05-22

[][][]Google MAPS API+PHP4で緯度経度取得 17:27 Google MAPS API+PHP4で緯度経度取得 - 開発ネタ物置 を含むブックマーク

include_once('./xml.php');

function getLatLng($address){
	
	$api_key = '(取得したapikey)';
	$api_baseuri = 'http://maps.google.com/maps/geo?key=' . $api_key . '&output=xml&ie=UTF8&q=';
	$api_uri = $api_baseuri.urlencode($address);

	$apistr = file_get_contents($api_uri);
	$xml_data = XML_unserialize($apistr);

	$res = $xml_data['kml']['Response'];
	$code = $res['Status']['code'];
	//正常に返された場合
	if($code == '200'){
		$coordinates = explode(',',$res['Placemark']['Point']['coordinates']);
	}else{
		$coordinates = array();
	}

	return $coordinates;
}

// 呼び出し先
$address = '仙台市泉区七北田字柳78';
list($lng,$lat) = getLatLng($address);

xml.php はこちらから取得 http://keithdevens.com/software/phpxml

スクリプトファイルUTF-8で作成。

プロキシ経由じゃなくて、さらにサーバがallow_url_open を許可していれば、

たぶんこれでいくじゃないかな(セルじおさん風に)

2007-04-10

[][]NP_MobileWithSinglePageと「mob」スキン携帯表示(画像つき) 18:33 NP_MobileWithSinglePageと「mob」スキンで携帯表示(画像つき) - 開発ネタ物置 を含むブックマーク

NP_MobileWithSinglePage(v1.5.1 ソース

http://japan.nucleuscms.org/wiki/plugins:mobilewithsinglepage:mobilewithsinglepage_code

携帯電話用「mob」スキン

http://japan.nucleuscms.org/bb/viewtopic.php?t=2822&highlight=%E6%90%BA%E5%B8%AF

この2つを利用して携帯対応サイトを作成することになったのですが、

なぜか画像が上手く表示されなかったのです。

調べてみても、アイテム登録時に<%image%>タグ使用しないで<img src="">を手入力するとか、

プログラムハック(スキン名固定で<%image%>タグを置き換えるとか)対処とかばかりでした。

微妙…と思いつつもソースを追いかけながらデバッグプリントしまくったところ、

そもそも<%image%>タグが展開できていないようで…。

あれ?もしかしてテンプレート

f:id:kno:20070410183752p:image

…入ってないじゃん…そりゃあ無視されるはずですわ。

なのでこんな感じで入力

f:id:kno:20070410183800p:image

まだユーザエージェント詐称レベルでしか見ていませんが*1、表示されました。

確認はこれで。

User Agent Switcher - Firefox まとめサイト

http://firefox.geckodev.org/index.php?User%20Agent%20Switcher

このあたりから適当ユーザエージェントを追加。

ユーザエージェント一覧 | NTTドコモ

http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/

KDDI au: そのほかの技術情報 > ユーザーエージェント

http://www.au.kddi.com/ezfactory/tec/spec/4_4.html

ユーザーエージェント一覧

http://www.openspc2.org/userAgent/


それとも、最初からmob/skinbackup.xmlをこう変えればいいのかも…。

<template name="mob/full">

......

<part name="IMAGE_CODE"><![CDATA[ <%image%>></part> # ←この行を追加

</template>

<template name="mob/short">

......

2006-06-07

[][]二次元連想配列の値でソート 16:28 二次元連想配列の値でソート - 開発ネタ物置 を含むブックマーク

array_multisort()でやったほうが簡単だった…orz

http://au.php.net/manual/ja/function.array-multisort.php

// 列方向の配列を得る
foreach ($data as $key => $row) {
   $volume[$key]  = $row['volume'];
   $edition[$key] = $row['edition'];
}

// データを volume の降順、edition の昇順にソートする。
// $data を最後のパラメータとして渡し、同じキーでソートする。
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);

こんなかんじか?

function value_asort($ary,$itemname,$sortorder='asc') {
   // ソート方向を取得
   $sortflg = ($sortorder == 'desc') ? SORT_DESC : SORT_ASC;

   // 列方向の配列を得る
   foreach ($ary as $key => $row) {
      $sortary[$key]  = $row[$itemname];
   }
    array_multisort($sortary, $sortflg, $data);
}