We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33426
    • 13 Posts
    как можно программным путем создать документ?
    сейчас создаю путем добавления в базу данных:

    $rez=$modx->db->query(’INSERT INTO site_content
    $rez=$modx->db->query(’INSERT INTO site_tmplvar_contentvalues

    документы - фотографии, соответсвенно у документа есть параметр - путь к фотографии
    из этих докумнтов формируется галерея:

    [[Wayfinder?startId=`’.$modx->documentIdentifier.’`&outerTpl=`wfOuter`&rowTpl=`wfRowGallery3`&includeDocs=`’.substr($subfoto,0,-1).’`]]
    <script type="text/javascript">
    $(document).ready(function(){
    $("a[rel^=\’prettyPhoto\’]").prettyPhoto();
    });
    </script>

    wfRowGallery3:
    <div style="float:left;margin-bottom:25px;margin-right:25px;"><div style="width:150px;height:150px;background:URL(image.php?src=[+image+]&amp;w=200&amp;h=200) no-repeat center center;text-align:center;border:2px solid #F58220;"><a href="[+image+]" rel="prettyPhoto[gallery]"><img src="assets/images/empty.gif" width="148" height="148" alt="" style="border:1px solid #fff"></a></div><div align="center">[[attr?a=`6`&docid=`[+wf.docid+]`]]</div></div>

    Документы добавляются, в меню админки отображаются, но есть одна проблема:
    при просмотре страницы с галереей уменьшенные фотографии не отображаются до тех пор, пока документ не был открыт и сохранен вручную. При клике на картинку большая фотография отображается нормально.
    Подскажите, что нужно еще сделать, чтоб уменьшенные фото отображались без ручного сохранения!
      • 22301
      • 1,084 Posts
      описание некоторых api есть здесь:
      http://svn.modxcms.com/docs/display/Evo1/Developer%27s+Guide

      возможно, подойдет это:
      http://svn.modxcms.com/docs/display/Evo1/documentGenerated
      к сожалению, там примера использования нет.

        [img]http://jurist-info.ru/pic/rrr.jpg[/img]

        Безжалостный пияр!
        Artima -- неуч!
        Осторожно: преступная локализация -- modx-cms.ru
        Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

        Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
        • 33426
        • 13 Posts
        спасибо, жаль только не понятно, что с этим делать..
        опытным путем выяснила, что при сохранении документа вручную создается дополнительное изображение вида phpThumb_cache_localhost_srccfb76172cb3f0fd9b9ee23862fedc047_parc3b01987836dd9bc3264b3043e48e46d_dat1253192048.jpeg
        в одной из папок images/.phpthumb_cache/
        что с этим открытием делать тоже пока не понятно(
          • 33426
          • 13 Posts
          как я понимаю не работает вот это: background:URL(image.php?src=[+image+]&amp;w=200&amp;h=200)
          в image.php: include(’assets/snippets/phpthumb/phpThumb.php’);
          значит для создания нужных мне файлов используется PHP thumbnail creator - phpThumb.php
          то есть надо как-то его заставить создать нужный файл при записи документа в БД..
          кто-нибудь знает, как это сделать?
            • 33426
            • 13 Posts
            Вижу разницу, но не знаю, как исправить..
            В результате выполнения этого кода <div style="float:left;margin-bottom:25px;margin-right:25px;"><div style="width:150px;height:150px;background:URL(image.php?src=[+image+]&amp;w=200&amp;h=200) no-repeat center center;text-align:center;border:2px solid #F58220;"><a href="[+image+]" rel="prettyPhoto[gallery]"><img src="assets/images/empty.gif" width="148" height="148" alt="" style="border:1px solid #fff"></a></div><div align="center">[[attr?a=`6`&docid=`[+wf.docid+]`]]</div></div>
            получается либо (если документ создан в ручную):
            <div style="float: left; margin-bottom: 25px; margin-right: 25px;"><div style="border: 2px solid rgb(245, 130, 32); background: transparent url(image.php?src=assets/images/svadebnie_priglasheniya/kartochki/3453k.jpg&amp;w=200&amp;h=200) no-repeat scroll center center; width: 150px; height: 150px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; text-align: center;"><a href="assets/images/svadebnie_priglasheniya/kartochki/3453k.jpg" rel="prettyPhoto[gallery]"><img src="assets/images/empty.gif" alt="" style="border: 1px solid rgb(255, 255, 255);" width="148" height="148"></a></div><div align="center"><b>Название:</b> 3453 K
            <b>Цена:</b> 26.00 руб.
            <b>Размеры:</b> </div></div>
            либо это(если программно):
            <div style="float: left; margin-bottom: 25px; margin-right: 25px;"><div style="border: 2px solid rgb(245, 130, 32); width: 150px; height: 150px; text-align: center;"><a href="assets/images/svadebnie_priglasheniya/kartochki/3441.jpg" rel="prettyPhoto[gallery]"><img src="assets/images/empty.gif" alt="" style="border: 1px solid rgb(255, 255, 255);" width="148" height="148"></a></div><div align="center"><b>Название:</b> 3441 K
            <b>Цена:</b> 27.00 руб.
            <b>Размеры:</b> </div></div>

              • 22301
              • 1,084 Posts
              пардон, углубляться в код нет возможности...

              русскоязычный сообщник ur001 несколько лет назад разработал специальный класс, чтобы создавать доки:
              http://modxcms.com/forums/index.php/topic,5983.0.html

              где есть и по-русски на форуме, но найти не могу, а ur001-скромник в подпись ссылки не добавил.

              и насчёт ручного сохранения доков подумалось: а что, если нажать в админке Сайт -- Очистить кэш , картина та же?
                [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                Безжалостный пияр!
                Artima -- неуч!
                Осторожно: преступная локализация -- modx-cms.ru
                Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
                • 16278
                • 928 Posts
                Класс Docmanager (http://modxcms.com/extras/download/165/165) вообще работает эффективно для создания документов без прямого обращения к БД, и облегчает создание и вывол ТВ.

                Два отметка:
                - в MODx 1.0.x больше нет папки /assets/lib (сам включаю файл в папку сниппета, который использует класс)
                - файл открывается коротким обозначением скрипта <?, что может вызвать проблемы. Лушче <?php

                smiley KP
                  • 1113
                  • 11 Posts
                  Люди! Подскажите, пожалуйста насчет программного создания доков.
                  Юзаю так называемый DocAPI от товарища ur001. Да вот незадача: при создании нового документа ИХ СОХРАНЯЕТСЯ ДВА - абсолютно одинаковых. Пробовал чистить кэш - ноль результата.
                  Код простейший:
                  <?php
                  
                  /**
                   * @author Alien Prime
                   * @copyright 2010
                   */
                  
                  global $modx;
                  
                  require_once ("assets/libs/docmanager/document.class.inc.php");
                  include_once ("manager/processors/cache_sync.class.processor.php");
                  
                  $doc = $modx->getDocument($id, '*', 1);
                  
                  if($doc['isfolder']==1)
                  {
                  	$doc = new Document();
                  	$doc->Set('parent',$id);
                  	$doc->Set('alias','post'.time());
                  	$doc->Set('content','Текст документа');
                  	$doc->Set('template','Main');
                  	$doc->Set('createdon',time());
                  	$doc->Set('createdby','1');
                  	$doc->Set('isfolder', '1');
                  	$doc->Set('tvCat', '1');
                  	$doc->Save();
                  	
                  	//CLEAR CACHE
                  	$sync = new synccache();
                  	$sync->setCachepath("assets/cache/");
                  	$sync->setReport(false);
                  	$sync->emptyCache();
                  }
                  else
                  {
                  	
                  }
                  
                  ?>


                  В чем пинус заключается??
                  Заранее всем спасибо!

                  UPD: Версия DocAPI - 0.5.3.
                  Только что пробовал полностью переписать метод Save() - не помогло. Где-то срабатывает два раза сохранение в базу данных...