Jump to:

23487 Posts in 18996 Topics by 2878 members

General Questions

SilverStripe Forums » General Questions » SILVERSTRIPE BOOK XML SITE TREE ISSUE

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1 2 3 4 5
Go to End
Author Topic: 3674 Views
  • servalman
    Avatar
    Community Member
    211 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    Hi Banal

    I'm sure you'r right and that I over complicate things and that template language and logic is more sipmle than what I think.

    But I made progress like I'm using swfobject like you said and it works like a charm .

    Regarding the site tree (my nightmare):
    At first wanted to retrieve it tottally then I realised that it would be (even in the flash file) much easier for me if I could just retrieve the section that is currently visible on screen and use it in my flash layer instead of processinf the all tree.

    I just tried to create:

    templates/export/ExportProductPage.ss with this in it :

    <node id="$ID" label="$Title" link="$Link" classname="$ClassName">
    <% control Children %>
    $ExportContent
    <% end_control %>
    </node>

    but I get the same results :

    If I do :
    http://mysite/products/productname/show/export
    i get the error
    user_error("DataObject::get_by_id passed a non-numeric ID #$id", E_USER_WARNING);

    If I do :
    http://mysite/products/productname/show/5/export
    i get the regular page

    If I do :
    http://mysite/products/productname/export
    i get the error :
    Action 'export' isn't allowed on class ProductPage_Controller

    What I dont get is that with the other export it works fine but here if I do $Link/export it would mean in my case :

    http://mysite/products/productname/show/5/export

    And in your example (the html one ) it seems that by juts creating "templates/export/ExportPageTemplateName.ss it should work.

    I think I missed something topugh I'm really trying to undertstand the process and I read it carefully.

    Thank again if you can explain me

    Attached Files
  • banal
    Avatar
    Community Member
    901 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    I still don't get what this whole product stuff is about.
    You want an XML output for one product? And the product is a DataObject?

    If that's the case, create a function like this in your ProductPage_Controller:

    public function productxml(){
       $id = (int)Director::urlParam('ID');
          
       $obj = DataObject::get_by_id('Product', $id);
       return $obj->renderWith('ProductXML');
    }

    And create a template templates/ProductXML.ss that will be used to render your product.

    Then to get XML for a product with a given ID, use:
    mysite.com/pathto/productpage/productxml/ID

    The green part would be the URL of your ProductPage and the red part should be replaced with the ID of the Product DataObject you want to display.

    Since apparently you don't need to export the Site-Tree several levels deep, you could basically skip all that stuff you did before. As I said, I think you're doing things way too complicated right now because your requirements shifted quite a bit.

  • servalman
    Avatar
    Community Member
    211 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    Hello Banal

    Really hope I'm not bothering you to much.

    I made an image wich I think is going to make thing clearer:

    Each of my product as a page in the site tree.

    What I want is exactly the same thing as in the example that works now the xml I use is very short .

    I just need the site tree because only the nav will be in flash

    Hope it can help you to help me

    Thanks

    Attached Files
  • banal
    Avatar
    Community Member
    901 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    It should be as simple as calling:
    <URL OF "sahos by evidence" Page>/export

    And:
    <URL OF "Les Démaquillants & Nettoyants" Page>/export

    Important: Use <% control Children %> instead of <% control Menu(2) %>!

  • servalman
    Avatar
    Community Member
    211 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    Hi Banal

    I think I'm lost now

    This is working for the saho part

    in template/Page_export.ss

    <?xml version="1.0" encoding="UTF-8"?>
    <% control Parent %>
    <node id="$ID" label="$Title" link="$Link" classname="$ClassName">
    <% end_control %>
    <% control Menu(2) %>
    $ExportContent
    <% end_control %>
    </node>

    in template/export/ExportPage.ss

    <node id="$ID" label="$Title" link="$Link" classname="$ClassName">
    <% control Children %>
    $ExportContent
    <% end_control %>
    </node>

    if i use the URL :http://mysite/sahos-by-evidens/saho-purifiant/export
    (I get this URL because "sahos-by-evidens" is a redictor page wich links to saho-purifiant.)

    I get exactly what I want The root node is the parent node and the rest are the childnode of my site tree.

    <?xml version="1.0" encoding="UTF-8"?>

    <node id="31" label="SAHOS BY EVIDENS" link="/evidev/sahos-by-evidens/saho-purifiant/" classname="RedirectorPage">

    <node id="36" label="Saho Purifiant" link="/evidev/sahos-by-evidens/saho-purifiant/" classname="EditorialPage3">

    </node>

    <node id="37" label="Saho Nourrissant" link="/evidev/sahos-by-evidens/saho-nourrissant/" classname="EditorialPage3">

    </node>

    <node id="38" label="Saho Perfection" link="/evidev/sahos-by-evidens/saho-perfection/" classname="EditorialPage3">

    </node>

    <node id="39" label="Saho Eclat" link="/evidev/sahos-by-evidens/saho-eclat/" classname="EditorialPage3">

    </node>

    <node id="40" label="Saho sur mesure" link="/evidev/sahos-by-evidens/saho-sur-mesure/" classname="EditorialPage2">

    </node>

    </node>

    now if in template/export/ExportProductPage.ss I write

    <node id="$ID" label="$Title" link="$Link" classname="$ClassName">
    <% control Children %>
    $ExportContent
    <% end_control %>
    </node>

    If I use the URL
    http://mysite/nos-soins/les-d-maquillants-nettoyants/le-lait-demaquillant/export
    I get this URL because "nos-soins" & "les-d-maquillants-nettoyants" are both redictor page wich links to le-lait-demaquillant.

    I get an error

    Action 'export' isn't allowed on class ProductPage_Controller

    I don't understan why

    Thanks in advance if you have a clue

  • banal
    Avatar
    Community Member
    901 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    That looks like a permission problem..
    1) Make sure, you don't have a function called "export" in ProductPage_Controller.
    2) Make sure that none of your pages URL-Segment is called export
    3) If the above didn't change anything, add the following to your Page Controller:

    static $allowed_actions = array(
       'export' => true
    );

    Since both of your "export" actions are going to use the Page_export.ss template, you have to modify it so that it works for both cases? Something along the lines of:

    <?xml version="1.0" encoding="UTF-8"?>
    <node id="$ID" label="$Title" link="$Link" classname="$ClassName">
    <% control Children %>
    $ExportContent
    <% end_control %>
    </node>

    Then use these URLs:

    http://mysite/sahos-by-evidens/export

    http://mysite/nos-soins/les-d-maquillants-nettoyants/export

  • servalman
    Avatar
    Community Member
    211 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    IT's Working !!

    Permission was the key .

    I added this

    static $allowed_actions = array (
    'show',
    'export' = >
    );

    Now for the output I'm going to tweak the Page_export.ss

    so it outputs what I want depneding on the level with some if statement.

    I really apreciated what you did for me and I will tel you know how it goes.

    Thanks again

  • servalman
    Avatar
    Community Member
    211 Posts

    Re: SILVERSTRIPE BOOK XML SITE TREE ISSUE Link to this post

    Hello Banal ;)

    It's me again with my XML problems

    I had to put this on stand by for a while but I'm back on it.

    Now I have no problem getting my product (on my screenshot the ProductsMenu zone) as an xml output .

    As you know I want to divide my site tree into small parts so know I want to be able to get the sitree for mi main menu (the one on top)

    For that do I have to create another export function in Page.php and another ExportPage.ss something like Export2Page.ss ??

    Thank you if you can help

    Attached Files
    3674 Views
Page: 1 2 3 4 5
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.