Jump to:

23493 Posts in 18996 Topics by 2878 members

General Questions

SilverStripe Forums » General Questions » cached output

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
Go to End
Author Topic: 262 Views
  • Eldar
    Avatar
    Community Member
    4 Posts

    cached output Link to this post

    hello!
    does anybody know how to solve the problem called "Side effects" (http://doc.silverstripe.org/framework/en/reference/templates)?

    I need to call the function which increments variable on +1 each time. Du to cacheing effect, I can see on output only the first value of the variable and value is not growing next time.

    Here are examples of my files:

    FirstPage.php

    <?php
    class FirstPage extends Page {
    public $j=10;
    static $db = array(
       );
       
       static $has_one = array(
          'Photo1' => 'Image',
          'Photo2' => 'Image',
          'Photo3' => 'Image',
          'Photo4' => 'Image',
          'Photo5' => 'Image',
          'Photo6' => 'Image',
          'Photo7' => 'Image',
          'Photo8' => 'Image',
          'Photo9' => 'Image',
          'Photo10' => 'Image'
       );
       function getCMSFields() {
          $fields = parent::getCMSFields();
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo1', 'Картинка #1 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo2', 'Картинка #2 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo3', 'Картинка #3 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo4', 'Картинка #4 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo5', 'Картинка #5 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo6', 'Картинка #6 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo7', 'Картинка #7 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo8', 'Картинка #8 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo9', 'Картинка #9 (660px * 380px)'));
          $fields->addFieldToTab("Root.Content.Images", new ImageField('Photo10','Картинка #10 (660px * 380px)'));

          return $fields;
       }
    function countImages(){
    $out="";
    $k=0;
    if ($this->Photo1ID > 0) ++$k;
    if ($this->Photo2ID > 0) ++$k;
    if ($this->Photo3ID > 0) ++$k;
    if ($this->Photo4ID > 0) ++$k;
    if ($this->Photo5ID > 0) ++$k;
    if ($this->Photo6ID > 0) ++$k;
    if ($this->Photo7ID > 0) ++$k;
    if ($this->Photo8ID > 0) ++$k;
    if ($this->Photo9ID > 0) ++$k;
    if ($this->Photo10ID > 0) ++$k;
    for ($i=1; $i<=$k; ++$i){
    $out.='<a href="#">'.$i.'</a>';
    }
    return $out;
    }

    public function currentImage(){
    $this->j++;
    return $this->j;
    }

    }

    class FirstPage_Controller extends Page_Controller {
    }

    FirstPage.ss

    <% if Photo1 %>
    $Photo1.URL $currentImage<br>
    <% end_if %>

    <% if Photo2 %>
    $Photo2.URL $currentImage<br>
    <% end_if %>

    <% if Photo3 %>
    $Photo3.URL $currentImage<br>
    <% end_if %>

    <% if Photo4 %>
    $Photo4.URL $currentImage<br>
    <% end_if %>

    <% if Photo5 %>
    $Photo5.URL $currentImage<br>
    <% end_if %>

    <% if Photo6 %>
    $Photo6.URL $currentImage<br>
    <% end_if %>

    <% if Photo7 %>
    $Photo7.URL $currentImage<br>
    <% end_if %>

    <% if Photo8 %>
    $Photo8.URL $currentImage<br>
    <% end_if %>

    <% if Photo9 %>
    $Photo9.URL $currentImage<br>
    <% end_if %>

    <% if Photo10 %>
    $Photo10.URL $currentImage<br>
    <% end_if %>

    Output:
    /assets/-/0.jpg 11
    /assets/-/0.jpg 11
    /assets/-/0.jpg 11
    /assets/-/0.jpg 11

    11,11,11... but I need 11,12,13...

    thanks a lot for help!

    P.S. silverstripe: 2.4.4

    262 Views
Page: 1
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.