:date: 2004-11-20 16:26:35 :tags: Zope, python =============================== Zope縺ァ繝翫ン繧イ繝シ繧キ繝ァ繝ウ =============================== #縺ァ縺吶∪縺呵ェソ縺ォ逍イ繧後◆縺ョ縺ァ縲√□縺ァ縺ゅk隱ソ縺ォ螟画峩縺励∪縺吶〒縺呻シ育ャ� 譛霑代�繝翫ン繧イ繝シ繧キ繝ァ繝ウ縺ォ蟇セ蠢懊@縺溘ヶ繝ゥ繧ヲ繧カ繧ょ「励∴縺ヲ縺阪◆縺ョ縺ァ縲∬�繧オ繧、繝医b繝翫ン繧イ繝シ繧キ繝ァ繝ウ逕ィ縺ョ繧ソ繧ー繧貞ー主�縺励※縺ソ繧医≧縺ィ諤昴≧縲ゅリ繝薙ご繝シ繧キ繝ァ繝ウ繧ソ繧ー縺ッ *<head></head>* 蜀�↓:: <head> <link rel="home" href="...." /> <link rel="up" href="...." /> <link rel="index" href="...." /> </head> 縺ィ險縺�─縺倥↓險倩ソー縺吶k繧峨@縺�� 縺帙▲縺九¥Zope繧剃スソ縺」縺ヲ縺�k縺ョ縺ァ縲∝推繝壹�繧ク縺ォ蝓九a霎シ縺セ縺壹↓縺薙l繧貞ョ溽樟縺吶k譁ケ豕輔r閠�∴縺ヲ縺ソ縺溘ゆサ雁屓諤昴>縺、縺�◆縺ョ縺ッ縲《tandard_html_header縺ョ荳ュ縺九ipython繧ケ繧ッ繝ェ繝励ヨ繧貞他縺ウ蜃コ縺励※縲� **迯イ蠕�** 繧剃スソ縺」縺ヲ蠢�ヲ√↑繝翫ン繧イ繝シ繧キ繝ァ繝ウ(萓九∴縺ーup)繧呈爾縺励∬ヲ九▽縺九▲縺溘i縺昴l縺ョURL繧� *<link rel...>* 縺ァ蝓九a霎シ繧譁ケ豕輔□縲� 縺セ縺嘖tandard_html_header縺ォ莉・荳九�譁�r蝓九a霎シ繧薙〒縺翫¥:: <dtml-var "navigation('index')"> <dtml-var "navigation('author')"> <dtml-var "navigation('home')"> <dtml-var "navigation('contents')"> <dtml-var "navigation('search')"> <dtml-var "navigation('help')"> <dtml-var "navigation('copyright')"> <dtml-var "navigation('alternate')"> <dtml-var "navigation('parent')"><!--same as up--> <dtml-var "navigation('up')"> <dtml-var "navigation('first')"><!--same as begin--> <dtml-var "navigation('begin')"> <dtml-var "navigation('prev')"> <dtml-var "navigation('next')"> <dtml-var "navigation('last')"><!--same as end--> <dtml-var "navigation('end')"> 谺。縺ォ縲√%縺薙〒蜻シ縺ウ蜃コ縺輔l繧杵avigation縺ィ縺�≧繧ェ繝悶ず繧ァ繧ッ繝医rPythonScript縺ァ繝ォ繝シ繝医ヵ繧ゥ繝ォ繝縺ォ逕ィ諢上ゆクュ霄ォ縺ッ縺薙s縺ェ諢溘§:: try: # target縺ッscript縺ョ蠑墓焚縲�"home"縺ィ縺�"up"縺ィ縺九′蜈・縺」縺ヲ縺上k # 莉願ヲ九※縺�k繝壹�繧ク縺九itarget縺ョ迯イ蠕励↓謖第姶縲ょ、ア謨励☆繧九→except縺ク縲� attr = getattr(context,target) # target縺ィ蜷後§蜷榊燕縺ョ繝励Ο繝代ユ繧」繝シ縺ィ縺九r謐輔∪縺医◆蝣エ蜷医√→繧翫≠縺医★螟ア謨励� if not hasattr(attr,"meta_type"): return '<!--find same name as %s-->' % target # 縺ソ縺、縺代◆target縺茎cript縺ョ蝣エ蜷医�蛟、繧偵b繧峨▲縺ヲ縺昴�縺セ縺セ霑斐☆ if attr.meta_type == "Script (Python)": return attr() # script莉・螟悶′隕九▽縺九▲縺溘i縲∬ヲ九▽縺代◆target縺ョurl繧定ソ斐☆ return '<link rel="%s" href="%s" />' % (target,attr.absolute_url()) except: pass # 螟ア謨励@縺溘i荳蠢懊さ繝。繝ウ繝医い繧ヲ繝医@縺滓枚蟄怜�縺�縺題ソ斐☆ return '<!--link rel="%s"-->' % target 縺ゅ→縺ッ迯イ蠕怜庄閭ス縺ェ蝣エ謇縺ォ index 縺ィ縺� copyright 縺ィ縺九�蜷榊燕縺ァDTML Document縺ェ縺ゥ繧堤スョ縺�※縺翫¢縺ー縲√リ繝薙ご繝シ繧キ繝ァ繝ウ繝舌�縺ァ蟇セ雎。繝峨く繝・繝。繝ウ繝医↓鬟帙�縺薙→縺悟�譚・繧九h縺�↓縺ェ繧九√→縺�≧蟇ク豕輔ゅ◆縺�縲∫音螳壹�繝峨く繝・繝。繝ウ繝医r陦ィ遉コ縺励◆縺上↑縺��エ蜷医√◆縺ィ縺医� up(隕ェ髫主ア、) 縺ェ縺ゥ縺ョ蝣エ蜷医�DTML Document縺ァ縺ッ髱「蛟偵↑縺ョ縺ァ縲 ̄ython Script繧� up 縺ィ縺�≧蜷榊燕縺ァ鄂ョ縺�※縺翫>縺ヲ縲√せ繧ッ繝ェ繝励ヨ縺ァ隕ェ髫主ア、縺ョURL繧貞性繧 <link rel...> 譁�ュ怜�繧定ソ斐☆繧医≧縺ォ菴懊l縺ー縺�>繧医≧縺ォ縺励※縺ゅk縲� up 縺ョPython Script縺ョ荳ュ霄ォ縺ッ莉・荳九�繧医≧縺ェ諢溘§:: request = container.REQUEST url = request.URL1 # 莉翫�繝壹�繧ク縺梧怙荳贋ス阪〒縺ゅl縺ー繧ウ繝。繝ウ繝域枚蟄怜�繧定ソ斐@縺ヲ邨ゆコ� if url == request.BASE0: return '<!--link rel="up" href="/"-->' # 荳縺、隕ェ縺ョ蛹コ蛻�j繧呈爾縺� col = url.rfind("/") # 繧オ繝シ繝舌�蜷阪∪縺ァ豬ク鬟溘&繧後◆繧牙、ア謨� if col < url.find("//")+1: return '<!--link rel="up" href="/"-->' # 髫主ア、荳縺、蛻�炎縺」縺ヲ link 繧ソ繧ー繧定ソ斐☆ return '<link rel="up" href="%s">' % url[:col] find縺励↑縺�〒split("/")縺ィjoin縺ァ讒狗ッ峨@繧医≧縺ィ諤昴▲縺溘�縺�縺後√↑縺懊°join( s, "/")縺ァ螟ア謨励@縺ヲ縺励∪縺�◆繧√∵妙蠢オ縲Qython縺ョ繝倥Ν繝礼ュ峨↓縺ッ *隨ャ莠悟シ墓焚縺ァ騾」邨宣Κ蛻�↓蜈・繧後k譁�ュ励r謖�ョ�* 縺ィ譖ク縺�※縺ゅk縺ョ縺ォ縲√↑縺懊°:: join() takes exactly one argument (2 given) 縺ィ縺�▲縺ヲ諤偵i繧後k蟋区忰縲ゆク肴晁ュー縺�縲� 莉雁屓縺ョ譁ケ蠑上�繧ヲ繝ェ縺ッ縲∫佐蠕励r菴ソ縺」縺ヲ縺�k縺ョ縺ァ蠢�ヲ√↑縺ィ縺薙m縺ァ繧ェ繝シ繝舌�繝ゥ繧、繝峨☆繧九%縺ィ縺悟�譚・繧九%縺ィ縲ゅ→縺�≧縺九%繧後′蜃コ譚・縺ェ縺�→Web繧オ繝シ繝舌�縺ィ縺�≧諤ァ雉ェ荳願ゥア縺ォ縺ェ繧峨↑縺�Oext繧аrev縺ョ繝ェ繝ウ繧ッ蜈医′Web繧オ繝シ繝舌�荳翫�蜑阪�繝シ繧ク縺ァ蝗コ螳壹〒繧りェー繧ょャ峨@縺上↑縺�� 縺ゅ→縺ョ蝠城。後�縲∽サ雁屓縺ョ譁ケ蠑上〒繝翫ン繧イ繝シ繧キ繝ァ繝ウ縺ョ繝ェ繝ウ繧ッ蜈医r逕ィ諢上☆繧九→縲√Ν繝シ繝医ヵ繧ゥ繝ォ繝遲峨↓繝翫ン逕ィ縺ョ繧ェ繝悶ず繧ァ繧ッ繝医′謨」荵ア縺吶k縺薙→縲ゅ>縺。縺翫≧謇句�縺ョ縺ッ繧オ繝悶ヵ繧ゥ繝ォ繝繧呈欠螳壹〒縺阪k繧医≧縺ォ縺励※縺ソ縺溘¢縺ゥ縲√≠繧薙∪繧顔セ弱@縺上↑縺�・窶・縲ゅ%縺ョ蠕後�隱イ鬘後→縺�≧縺薙→縺ォ縺励※縺翫%縺�� .. :extend type: text/plain .. :extend: