2013-06-07 1 views
0

У меня есть часть TALES для шаблона страницы в Plone, который просматривает результаты коллекции и вставляет их в окно (похожее на окно портлета коллекции)Пропустить сайт сайта в возвращаемом результате при использовании getPath в шаблонах страницы Plone

у меня есть проблема в получении URL из возвращенных предметов, я использую GetPath однако он возвращает имя сайта, поэтому мои URLS в конечном итоге http://mysite.com/ThePloneSite/folder/page вместо просто http://mysite.com/folder/page, в настоящее время моего примера СКАЗКА выглядит следующим образом:

<a tal:attributes="href string:${item/getPath}/view">Item</a> 

Я пробовал все варианты, которые я могу себе представить, но я не помню Кромка все так вот пару, которые не работают:

(это ничего не возвращает)

<a tal:attributes="href item/absolute_url">Item</a> 

это дает мне отслеживающий, жалуется на «GetPath»:

<a tal:attributes="python:item.getObject().absolute_url()">Item</a> 

Единственная причина имя сайта, находящееся в ссылке, вызывает раздражение, так это то, что для доступа к кнопкам «Состояние» и «Показать» вы должны нажать «Просмотреть» после первоначального нажатия на ссылку

ПРИМЕЧАНИЕ: последний пример работает w вы используете getFolderContents, однако я понимаю, что результаты возвращения из коллекции разные.

Любая помощь была бы принята с благодарностью, спасибо.

EDIT Traceback для абсолютной версии:

Traceback (innermost last): 
    Module ZPublisher.Publish, line 126, in publish 
    Module ZPublisher.mapply, line 77, in mapply 
    Module ZPublisher.Publish, line 46, in call_object 
    Module Shared.DC.Scripts.Bindings, line 322, in __call__ 
    Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec 
    Module Products.PageTemplates.ZopePageTemplate, line 334, in _exec 
    Module Products.PageTemplates.ZopePageTemplate, line 431, in pt_render 
    Module Products.PageTemplates.PageTemplate, line 79, in pt_render 
    Module zope.pagetemplate.pagetemplate, line 113, in pt_render 
    Module zope.tal.talinterpreter, line 271, in __call__ 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 888, in do_useMacro 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal 
    Module zope.tal.talinterpreter, line 518, in do_optTag 
    Module zope.tal.talinterpreter, line 513, in no_tag 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 852, in do_condition 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal 
    Module zope.tal.talinterpreter, line 518, in do_optTag 
    Module zope.tal.talinterpreter, line 513, in no_tag 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 954, in do_defineSlot 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 852, in do_condition 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 946, in do_defineSlot 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal 
    Module zope.tal.talinterpreter, line 518, in do_optTag 
    Module zope.tal.talinterpreter, line 513, in no_tag 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 821, in do_loop_tal 
    Module zope.tal.talinterpreter, line 343, in interpret 
    Module zope.tal.talinterpreter, line 405, in do_startTag 
    Module zope.tal.talinterpreter, line 482, in attrAction_tal 
    Module Products.PageTemplates.Expressions, line 225, in evaluateText 
    Module zope.tales.tales, line 696, in evaluate 
    - URL: /peacehospice/portal_skins/custom/home_page_view 
    - Line 200, Column 12 
    - Expression: <PythonExpr alldoc.getObject().absolute_url()> 
    - Names: 
     {'container': <PloneSite at /peacehospice>, 
     'context': <ATDocument at /peacehospice/front-page>, 
     'default': <object object at 0x7fbed9313b30>, 
     'here': <ATDocument at /peacehospice/front-page>, 
     'loop': {u'alldoc': <Products.PageTemplates.Expressions.PathIterator object at 0x7fbebcd20c50>}, 
     'nothing': None, 
     'options': {'args':()}, 
     'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7fbebde89680>, 
     'request': <HTTPRequest, URL=http://demo.kcsts.co.uk/front-page/home_page_view>, 
     'root': <Application at >, 
     'template': <ZopePageTemplate at /peacehospice/home_page_view used for /peacehospice/front-page>, 
     'traverse_subpath': [], 
     'user': <PropertiedUser 'dan'>} 
    Module Products.PageTemplates.ZRPythonExpr, line 48, in __call__ 
    - __traceback_info__: alldoc.getObject().absolute_url() 
    Module PythonExpr, line 1, in <expression> 
    Module AccessControl.ImplPython, line 716, in guarded_getattr 
    Module AccessControl.ImplPython, line 658, in aq_validate 
    Module AccessControl.ImplPython, line 552, in validate 
    Module AccessControl.ImplPython, line 322, in validate 
    Module AccessControl.ImplPython, line 749, in raiseVerbose 
    Module AccessControl.ImplPython, line 726, in item_repr 
    Module plone.app.contentlisting.catalog, line 29, in __repr__ 
    Module plone.app.contentlisting.catalog, line 74, in getPath 
    Module Products.ZCatalog.CatalogBrains, line 51, in getPath 
AttributeError: getpath 

СКАЗКИ для получения содержания коллекции:

<div id="all-documents" tal:define="allDocsBatch python:context.documents.alldocuments.results(b_start=b_start,b_size=10)"> 
    <h3>All Documents</h3> 
    <div class="tabbedWrapper"> 
    <div class="item" tal:repeat="alldoc allDocsBatch"> 
     <p> 
     <img tal:replace="structure alldoc/getIcon" /> 
     <a tal:attributes="href python:alldoc.getObject().absolute_url()" tal:content="alldoc/Title" /> 
     <span class="tags" tal:condition="alldoc/Subject" tal:define="alldoctag alldoc/Subject"> 
      <a tal:repeat="tag alldoctag" tal:content="tag" 
      tal:attributes="href string:${context/portal_url}/@@search?Subject:list=${tag}"/> 
     </span> 
     </p> 
    </div> 
    </div> 
</div> 

EDIT # 2

ПРИМЕЧАНИЕ нашли ссылку http://copilotco.com/mail-archives/plone-users.2007/msg05113.html, которая может помочь но пока у меня не было возможности посмотреть на это.

+0

Полный ответ для версии .absolute_url() будет полезен. –

+0

Если 'getFolderContents' возвращает URL-адреса, которые были правильно внедрены в виртуальную среду, происходит нечто более глубокое. Вероятно, где-то проблема покупки. Как вы получаете результаты сбора? –

+0

@MartijnPieters Добавлено traceback также добавлено TALES – Dan

ответ

5

Если элемент представляет собой каталог мозга (как в вашем примере), вам необходимо позвонить item/getURL. absolute_url предназначен для реальных объектов.

+0

Спасибо за кучу, я забыл о getURL, я не уверен, почему я использовал getPath в первую очередь вообще! Кажется, сейчас так очевидно. - – Dan

+0

Показывает, сколько я обращал внимание; даже не осознавал, что это было 'getPath' против' getURL'. –

+0

Спасибо за ваше время в любом случае @MartijnPieters оценили – Dan

 Смежные вопросы

  • Нет связанных вопросов^_^