Чудны будни веб-разработчиков и MODX в частности

Взялся тут по-дурости, доработать один сайт. И углубляясь в код шаблонов и чанков волосы по-тихоньку вставали дыбом. Объясните, пожайлуста, может я дурак?
Вывод новостей на главной странице
Код чанка
[[!NewsBlock1MainPage? &parent=`4` &limit=`[[*limitMainPZ]]`]]
Код сниппета NewsBlock1MainPage.
<?php
$where = array('parent' => $parent, 'published' => 1);
$resources = $modx->getCollection('modResource',$where);
$output = '';
$i = 0;
foreach ($resources as $res) {
if ($i < $limit) {
  $output .= '<div class=\'gallery_block\'>';
    $output .= '<a href=\'[[~'.$res->get('id').']]\'>';
      $output .= '<div class=\'gallery_block_content\'>';
        $output .= '<div class=\'gallery_block_img\'>';
          $tv = $modx->getObject('modTemplateVar', array('name'=>'BigImg'));
          $rs = $tv->getMany('TemplateVarResources');
          foreach ($rs as $r) {
            if ($r->get('contentid') == $res->get('id')) {
              $output .= '<img src=\'/'.$r->get('value').'\' alt=\'\' />';
            }
          }
        $output .= '</div>';
        $output .= '<div class=\'gallery_block_text\'>';
          $output .= '<div class=\'gallery_block_title_wrap\'>';
            $tv = $modx->getObject('modTemplateVar', array('name'=>'Slider1BigImgText1'));
            $rs = $tv->getMany('TemplateVarResources');
            foreach ($rs as $r) {
              if ($r->get('contentid') == $res->get('id')) {
                $output .= $r->get('value');
              }
            }
          $output .= '</div>';
        $output .= '</div>';	
      $output .= '</div>';					
      $output .= '<div class=\'gallery_block_hover\'>';
        $output .= '<div class=\'gallery_block_hover_title_wrap\'>';
          $output .= '<div class=\'gallery_block_title_wrap2\'>';
            $tv = $modx->getObject('modTemplateVar', array('name'=>'LinkText'));
            $rs = $tv->getMany('TemplateVarResources');
            foreach ($rs as $r) {
              if ($r->get('contentid') == $res->get('id')) {
                $output .= '<div class=\'bllllp2\'><span>'.$r->get('value').'</span></div>';
              }
            }
            $tv = $modx->getObject('modTemplateVar', array('name'=>'Slider1BigImgText2'));
            $rs = $tv->getMany('TemplateVarResources');
            foreach ($rs as $r) {
              if ($r->get('contentid') == $res->get('id')) {
                $output .= '<h2>'.$r->get('value').'</h2>';
              }
            }
            $tv = $modx->getObject('modTemplateVar', array('name'=>'Slider1BigImgText3'));
            $rs = $tv->getMany('TemplateVarResources');
            foreach ($rs as $r) {
              if ($r->get('contentid') == $res->get('id')) {
                $output .= $r->get('value');
              }
            }
          $output .= '</div>';
        $output .= '</div>';
      $output .= '</div>';
    $output .= '</a>';
  $output .= '</div>';
}
$i++;NewsBlock1MainPage
}
echo $output;
Все это было заменено на 4 строчки
[[!pdoResources?
        &parents=`4`
        &tpl=`tpl.PopularArticleItem`
        &includeTVs=`BigImg,typematerial,rolematerial,articlebigimg`
 ]]
Вот сижу и думаю, может бросить все это дело, пока не поздно :-)
Sergey Pozhidaev
15 декабря 2015, 05:07
modx.pro
1 622
0

Комментарии: 3

Василий Наумкин
15 декабря 2015, 08:19
+3
Обычное дело — программист не знаком с MODX.

Бросать не стоит, лучше объяснить заказчику масштаб проблем и увеличить цену. Если не согласен — тогда можно и бросить.
    Sergey Pozhidaev
    15 декабря 2015, 08:23
    0
    Тоесть человеку не лень было разбираться с методами MODx, но быстро пробежаться по документации стандартных дополнений он не захотел? Чудно.
      Василий Наумкин
      15 декабря 2015, 08:28
      +3
      Думаю, да. Учитывая еще, что он пишет HTML прямо в PHP, перед нами программист из двухтысячных =)

      Наверное, просто решает задачи, как привык, а нужные методы гуглит «как получить все ресурсы в MODX Revo», «Как получить ТВ у ресурса MODX».
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3