We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17112
    • 6 Posts
    1. Передо мной стояла задача через сниппет вытащить из нескольких "child" страниц в родительскую ряд TV (имя, цену,), прописать в хед ссылки на 2 джава-скрипт файла, сгенерить ссылки на эти страницы и  прилепить тумбу 1ой (именно 1ой) картинки, генерируемой на "child" странице MaxiGallery.
    2. С ТВ-шками и линками я справился с горем пополам, но вот на картинку моих скудных знаний ПХП не хватило (как я подозреваю - ошибка в синтаксисе).
    3. Вот код сниппета:
    <?php
    $jQuery_script = "assets/templates/js/jquery-1.3.2.min.js";
    $ans_script = "assets/templates/js/jquery.accessible-news-slider.js";
    $modx->regClientStartupScript($jQuery_script);
    $modx->regClientStartupScript($ans_script);
    $output = '';
    $id = $modx->documentIdentifier;
    $children = $modx->getDocumentChildren($id,1, 0, 'id');
    foreach ($children as $document) {
    $tvPr = $modx->getTemplateVarOutput('price',$document['id'], 1);
    $tvNa = $modx->getTemplateVarOutput('name',$document['id'], 1);
    $gal_path = $modx->getPlaceholder('maxigallery.path_to_gal');
    $pic = $modx->getPlaceholder('maxigallery.picnumber');
    foreach ($pic = 1) {
    $pic_name = $modx->getPlaceholder('maxigallery.picture.filename');
    }
    $pic_url = $modx->config['base_url'] . $gal_path . . $pic_name .;
    $id = $document['id'];
    $url = $url = $modx->makeUrl($id);
    $output .= '<div class="container1">
    <div class="piccont"><a href="' .$url. ' "title="' .$tvNa['name'].'"><img src="' .$pic_url. ' "title="' .$tvNa['name'].'  class="thumbnail""> '.$tvNa['name']. '</a></div>
    <a href="' .$url. ' "title="' .$tvNa['name'].'"> '.$tvNa['name']. '</a></div> 
    <br /><div class="container2">' .$tvPr['price']. '</div>';
    }
    return $output;
    ?>


    На вывод ХТМЛ не обращайте внимания - он сугубо произвольный.
    4. Где я ошибся ?
      • 36823
      • 334 Posts
      А чем вам Ditto не подошёл?
        • 897
        • 1,620 Posts
        жесть
        $url = $url = $modx->makeUrl($id);
        


        я лично с трудом понял смысл первого поста из-за псевдо-"сленга", этакий закос под true-программиста.

        я так же сомневаюсь, что задача стояла именно как "через сниппет вытащить из нескольких "child" страниц в родительскую ряд TV (имя, цену,), прописать в хед ссылки на 2 джава-скрипт файла, сгенерить ссылки на эти страницы и прилепить тумбу 1ой (именно 1ой) картинки, генерируемой на "child" странице MaxiGallery.". Это уже ваш вариант решения исходной задачи.

        Ditto тут не нужен, MG может вставлять в чанки значение стандартных полей и дополнительных полей (TV) документа галереи-потомка, через свой плейсхолдеры. Надо всего лишь читать внимательно документацию, а не "полезняшки" о самописных решениях типовых задач.

        удачи в делах!
          "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

          Who can defeat the Russian bear?
          • 36823
          • 334 Posts
          Quote from: Aleksey at May 21, 2009, 07:19 AM

          Ditto тут не нужен, MG может вставлять в чанки значение стандартных полей и дополнительных полей (TV) документа галереи-потомка, через свой плейсхолдеры. Надо всего лишь читать внимательно документацию, а не "полезняшки" о самописных решениях типовых задач.
          Может и не нужен. Но если делать, к примеру, анонсы новостей с превьюшками от MG и разбиением на страницы, пригодится.
            • 17112
            • 6 Posts
            Quote from: Andrei at May 21, 2009, 05:09 AM

            А чем вам Ditto не подошёл?

            Пока ж то хочу обойтись без этого тяжеловеса.Quote from: Aleksey at May 21, 2009, 07:19 AM

            жесть
            $url = $url = $modx->makeUrl($id);
            


            я лично с трудом понял смысл первого поста из-за псевдо-"сленга", этакий закос под true-программиста.

            я так же сомневаюсь, что задача стояла именно как "через сниппет вытащить из нескольких "child" страниц в родительскую ряд TV (имя, цену,), прописать в хед ссылки на 2 джава-скрипт файла, сгенерить ссылки на эти страницы и  прилепить тумбу 1ой (именно 1ой) картинки, генерируемой на "child" странице MaxiGallery.". Это уже ваш вариант решения исходной задачи.

            Ditto тут не нужен, MG может вставлять в чанки значение стандартных полей и дополнительных полей (TV) документа галереи-потомка, через свой плейсхолдеры. Надо всего лишь читать внимательно документацию, а не "полезняшки" о самописных решениях типовых задач.

            удачи в делах!

            1. ОписАлся. С кем не бывает ? (по поводу "жести")
            2. ПисАл как можно понятней (по поводу "псевдо-сленга")
            3. Своё недовольство и злость на другого человека не надо переносить на меня. (От Вас я так и не услышал ничего путного  )


            Пы.Сы. На редкость "отзывчивое" сообщество smiley Надо было прикинуться блАндинкой...
              • 897
              • 1,620 Posts
              от меня вы не услышали готового решения ваших проблем, а вот посыл почитать документацию по MG весьма вам полезен будет. Или вы не способны самостоятельно найти ссылку на документацию?

              помогаю:

              http://wiki.modxcms.com/index.php/MaxiGallery#childgalleryTpl

              [+maxigallery.pageinfo.fieldname+]
              MODx document object fields from the child gallery document. The "fieldname" would be pagetitle, longtitle, pub_date, etc..

              [+maxigallery.pageinfo.tv.tvname+]
              Template variables from the child gallery document. The "tvname" would be your TV’s name.
                "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

                Who can defeat the Russian bear?
                • 17112
                • 6 Posts
                Quote from: Aleksey at May 22, 2009, 04:23 AM

                от меня вы не услышали готового решения ваших проблем, а вот посыл почитать документацию по MG весьма вам полезен будет. Или вы не способны самостоятельно найти ссылку на документацию?

                помогаю:

                http://wiki.modxcms.com/index.php/MaxiGallery#childgalleryTpl

                [+maxigallery.pageinfo.fieldname+]
                MODx document object fields from the child gallery document. The "fieldname" would be pagetitle, longtitle, pub_date, etc..

                [+maxigallery.pageinfo.tv.tvname+]
                Template variables from the child gallery document. The "tvname" would be your TV’s name.
                ......в общем налицо непонимание (то ли у меня, то ли у Вас ):
                Структура такова:
                Вот "child" (всё никак не могу подобрать синоним на русском) страница:
                http://narod.org.ru/lifesaver/bast_toys/product.htm
                Вот страница куда мне нужно "вытащить" (имя, цену, ссылку и изображение (первое, потому, что на "child" странице может быть несколько фотографий)(она (страница) - родительская по отношению к предыдущей):
                http://narod.org.ru/lifesaver/bast_toys/gallery.htm

                т.е. всё построено на вводе данных в "child", а уже оттуда они передаются.

                Поэтому я полагаю (возможно ошибочно), что информация о "child" галереях в MG мне не оч. пригодится.
                  • 897
                  • 1,620 Posts
                  теперь понятно. Я так понимаю, что на странице товара картинки заливаются через mg.

                  вариант 1 (Ditto)
                  [!Ditto? &parents=`можно оставить пустым, поумолчанию будет id текущего документа` &tpl=`dtProduct` ... !]
                  

                  чанк dtProduct
                  ...
                  <h2>[+pagetitle+]</h2>
                  <p>[+content+]</p>
                  <p class="product_price">[+price+] руб.</p>
                  <h3></h3>
                  <p>Картинки товара:</p>
                  [[MaxiGallery? &gal_query_ids=`[+id+]` &limit=`1`]]
                  ...
                  

                  больше информации в статье Howto catalogue

                  это самый простой и правиьный вариант. не бойтесь мифов о тормознутости и монстрости ditto у него есть достаточно параметров ограничивающих его аппетит.

                  вариант 2 (самопись):

                  допустим вы написали сниппет и в нем уже смогли получить нужные поля конкретного документ. тогда кусок кода отвечающий за получение ссылки на первую картинку из галереи картинок у конкретного товара:
                  ...
                  $mg_params = Arrary(
                                                  "gal_query_ids" => $product_document_id,
                                                  "limit" => 1,
                                                  "galleryOuterTpl" => "[+maxigallery.pictures+]", 
                                                  "galleryPictureTpl" => "[(base_url)][+maxigallery.path_to_gal+]tn_[+maxigallery.picture.filename+]"
                  );
                  $image_src = $modx->runSnippet("MaxiGallery", $mg_params);
                  ...
                  

                    "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

                    Who can defeat the Russian bear?
                    • 17112
                    • 6 Posts
                    Aleksey Stepanov
                    Спасибо огромное )))))
                    Вариант с Дитто сработал wink
                    а вот 2 ой вариант, как я его не крутил - не работает ). Да и Бог с ним - потом разберусь.
                    Если будет нужна помощь с вёрсткой - обращайтесь )))