We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21977
    • 35 Posts
    В шаблоне есть такая конструкция:
    <tr>
    	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
    	<td height="2" width="240"></td>
    	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
    	<td height="2" width="697"></td>
    	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
    </tr>


    Нужно с помощью TV сделать выбор между размерами 240/697 и, допустим, 440/497. То есть в TV — 2 радиобокса... при выборе первого радиобокса в 3 и 5 строку приведённого кода ставится соответственно 240 и 697, при выборе второго — соответственно 440 и 497.

    Это возможно как-нибудь сделать?

    Вписывать в TV весь код этого куска дважды не хочется (чтобы костылей не было).
      • 897
      • 1,620 Posts
      PHx

      http://wiki.modxcms.com/index.php/PHx

      ...
      <td height="2" width="[+phx:if=`tvname`:is=`1`:then=`240`:else=`697`+]"></td>
      ...
      


      как-то так smiley
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

        Не используйте Revo для "просто сайтов". Используйте Evo

        Who can defeat the Russian bear?
        • 21977
        • 35 Posts
        Благодарю smiley. А арифметические операции с помощью PHx (или ещё какой-нибудь технологии, встроенной в modx), можно приводить? Конечно, можно создать сниппет и туда пхп запихать, но опять же не очень удобно.
          • 21977
          • 35 Posts
          Реализовал вот так:
          <tr>
          	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
          	<td height="2" width="[*left_width*]"></td>
          	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
          	<td height="2" width="[[get_width? &a=`[*left_width*]`]]"></td>
          	<td><img src="index_files/spacer.gif" height="2" width="1"></td>
          </tr>


          Тут используется простой сниппет
          <?php
          return 937-$a;
          ?>
          


          И TV, где выбирается ширина левой ячейки. Собственно, вопрос такой: можно ли обойтись без сниппета (а вычитать прямо в шаблоне)?
            • 897
            • 1,620 Posts
            без сниппета можно. для того же phx сделать модификатор,к примеру mywidth
            return 937-$output;
            


            использовать так (конечно phx должен быть установлен)
            ...
            [*left_width*] <- получите значение которое забито в TV
            ...
            [*left_width:mywidth*] <- получите измененное значение
            ...
            
              "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

              Не используйте Revo для "просто сайтов". Используйте Evo

              Who can defeat the Russian bear?
              • 21977
              • 35 Posts
              Ну это мне в голову приходило, но я спрашивал именно про использование одного TV, возможно ли одним TV убить двух зайцев?