We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26709
    • 4 Posts
    Всем привет. У меня возникла потребность сделать в админке Evo в разделе конфигурации дополнительную вкладку. Как создать плагин, я знаю, а вот к какому событию привязать его, не знаю. Пробовал OnSiteSettingsRender, но код добавляется в ПОСЛЕДНЮЮ вкладку, т.е. в саму секцию. Подскажите, пож., если кто знает.
      • 785
      • 2,113 Posts
      Quote from: Serg24 at Jan 21, 2011, 01:29 AM

      Пробовал OnSiteSettingsRender, но код добавляется в ПОСЛЕДНЮЮ вкладку
      Странно, так как для добавления в последнюю надо использовать OnMiscSettingsRender. А для добавления еще одной вкладки выводите </td></tr></table></div> а потом все, что относится к вкладке, без </td></tr></table></div>.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 26709
        • 4 Posts
        Спасибо за подсказку. Получилось. Вот примерный вариант плагина (еще нуждается в доработке, но принцип понятен):


        $output = "";
        $e = &$modx->Event;

        if($e->name == ’OnMiscSettingsRender’){

        $output = ’
        </td></tr></table></div>
        <!-- Cache Settings -->
        <div style="display: block;" class="tab-page" id="tabPage8">
        <h2 class="tab">Кеширование</h2>
        <script type="text/javascript">tpSettings.addTabPage( document.getElementById( "tabPage8" ) );</script>
        <table border="0" cellpadding="3" cellspacing="0">
        <tbody>
        <tr>
        <td class="warning" nowrap="nowrap"><b>Тут название параметра</b></td>
        <td>Поле для параметра</td>
        </tr>
        </tbody>
        </table>
        </div>
        ’;
        //}
        $e->output($output);
        }

        Вешаем на событие OnMiscSettingsRender
          • 785
          • 2,113 Posts
          Лишние
          </td>
          </tr>
          </tbody>
          </table>
          </div>
          после "для параметра"
          В код посмотрите, закрывающие теги должны в таком случае два раза вывестись.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 26709
            • 4 Posts
            Нет, вроде все правильно. Там для каждой вкладки - своя отдельная таблица. Получается, что мы вначале закрываем предыдущую, закрываем див, потом открываем следующий див и опять создаем свою таблицу для этой вкладки. Ну а в конце закрываем и таблицу и див.
              • 785
              • 2,113 Posts
              Вот как генерируется все в MODx (только фрагмент)
                    <!-- Miscellaneous settings -->
                    <div class="tab-page" id="tabPage7">
                      <h2 class="tab"><?php echo $_lang["settings_misc"] ?></h2>
                      <script type="text/javascript">tpSettings.addTabPage( document.getElementById( "tabPage7" ) );</script>
                      <table border="0" cellspacing="0" cellpadding="3">
              
              <!-- всякое разное, не относящееся к делу	 --> 	
              		
              		  <tr class='row1'>
                          <td colspan="2">
              		        <?php
              					// invoke OnMiscSettingsRender event
              					$evtOut = $modx->invokeEvent("OnMiscSettingsRender");
              					if(is_array($evtOut)) echo implode("",$evtOut);
              		        ?>
                          </td>
                        </tr>
                      </table>
                    </div>

              Фрагмент на PHP меняется на
              </td></tr></table></div>
              <!-- Cache Settings -->
                    <div style="display: block;" class="tab-page" id="tabPage8">
                      <h2 class="tab">Кеширование</h2>
                      <script type="text/javascript">tpSettings.addTabPage( document.getElementById( "tabPage8" ) );</script>
                      <table border="0" cellpadding="3" cellspacing="0">
                          <tbody>
              <tr>
                            <td class="warning" nowrap="nowrap"><b>Тут название параметра</b></td>
                            <td>Поле для параметра</td>
                          </tr>
              </tbody>
              </table>
              </div>

              получается
                   <div class="tab-page" id="tabPage7">
                      <h2 class="tab"><?php echo $_lang["settings_misc"] ?></h2>
                      <script type="text/javascript">tpSettings.addTabPage( document.getElementById( "tabPage7" ) );</script>
                      <table border="0" cellspacing="0" cellpadding="3">
              
              <!-- всякое разное	 --> 	
              		
              		  <tr class='row1'>
                          <td colspan="2">
              </td></tr></table></div>
              <!-- Cache Settings -->
                    <div style="display: block;" class="tab-page" id="tabPage8">
                      <h2 class="tab">Кеширование</h2>
                      <script type="text/javascript">tpSettings.addTabPage( document.getElementById( "tabPage8" ) );</script>
                      <table border="0" cellpadding="3" cellspacing="0">
                          <tbody>
              <tr>
                            <td class="warning" nowrap="nowrap"><b>Тут название параметра</b></td>
                            <td>Поле для параметра</td>
                          </tr>
              </tbody>
              </table>
              </div>
                          </td>
                        </tr>
                      </table>
                    </div>


              То есть закрывающих тегов в два раза больше, чем надо
                Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                Статьи о MODx, регулярно новые публикации
                • 26709
                • 4 Posts
                Спасибо, не досмотрел