We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15186
    • 4 Posts
    Пытаюсь создать ресурс с фронт енда с помощью FormIt.
    все нормально все данные ловятся, но при попытке сохранить русурс выбивает:
    Fatal error: Call to a member function getOption() on a non-object in Z:\home\modxxx.ru\www\core\model\modx\modresource.class.php on line 670
    Немного покапавшись нарыл что в modresource.class.php он пытается генерировать УРЛ посылая в функцию
     public function getAliasPath($alias = '',array $fields = array()) {
            if (empty($fields)) $fields = $this->toArray();
            $workingContext = $this->xpdo->getContext($fields['context_key']); /////// Вот тут образуеться этот воркконтент 
            if (empty($fields['uri_override']) || empty($fields['uri'])) {
                /* auto assign alias if using automatic_alias */
                if (empty($alias) && $workingContext->getOption('automatic_alias', false)) {
                    $alias = $this->cleanAlias($fields['pagetitle']);
                } else {
                    $alias = $this->cleanAlias($alias);
                }
    
                $fullAlias= $alias;
                $isHtml= true;
                $extension= '';
                $containerSuffix= $workingContext->getOption('container_suffix', '');  // Вот тут он пытается вызвать метод но это Не обьект =/
                /* process content type */
                if (!empty($fields['content_type']) && $contentType= $this->xpdo->getObject('modContentType', $fields['content_type'])) {
                    $extension= $contentType->getExtension();
                    $isHtml= (strpos($contentType->get('mime_type'), 'html') !== false);
                }
                /* set extension to container suffix if Resource is a folder, HTML content type, and the container suffix is set */
                if (!empty($fields['isfolder']) && $isHtml && !empty ($containerSuffix)) {
                    $extension= $containerSuffix;
                }
                $aliasPath= '';
                /* if using full alias paths, calculate here */
                if ($workingContext->getOption('use_alias_path', false)) {
                    $pathParentId= $fields['parent'];
                    $parentResources= array ();
                    $query = $this->xpdo->newQuery('modResource');
                    $query->select($this->xpdo->getSelectColumns('modResource', '', '', array('parent', 'alias')));
                    $query->where("{$this->xpdo->escape('id')} = ?");
                    $query->prepare();
                    $query->stmt->execute(array($pathParentId));
                    $currResource= $query->stmt->fetch(PDO::FETCH_ASSOC);
                    while ($currResource) {
                        $parentAlias= $currResource['alias'];
                        if (empty ($parentAlias)) {
                            $parentAlias= "{$pathParentId}";
                        }
                        $parentResources[]= "{$parentAlias}";
                        $pathParentId= $currResource['parent'];
                        $query->stmt->execute(array($pathParentId));
                        $currResource= $query->stmt->fetch(PDO::FETCH_ASSOC);
                    }
                    $aliasPath= !empty ($parentResources) ? implode('/', array_reverse($parentResources)) : '';
                    if (!empty($aliasPath) && $aliasPath[-1] !== '/') $aliasPath .= '/';
                }
                $fullAlias= $aliasPath . $fullAlias . $extension;
            } else {
                $fullAlias= $fields['uri'];
            }
            return $fullAlias;
        }
    
    


    вообщем при попытке вызова $workingContext как объекта и вываливается... кто то сталкивался или это может баг revo 2.1 rc1 ?
    покапавшись понял что $workingContext = $this->xpdo->getContext($fields[’context_key’]); возвращает null
    почему х3...
      • 897
      • 1,620 Posts
      ну как бы надо проверить а что храниться в $fields[’context_key’]
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

        Who can defeat the Russian bear?
        • 15186
        • 4 Posts
        В $fields[’context_key’] значение "web".
          • 24297
          • 5 Posts
          Тоже наткнулся на такую проблему. Понял только что это связано с правами на создание ресурсов у веб-пользователей. У меня, например, ресурс создается, только если пользователь не авторизован. Буду разбираться, как получится, отпишусь.
            • 31246 ☆ A M B ☆
            • 428 Posts
            Quote from: k1ll at Apr 07, 2011, 06:22 AM
            Пытаюсь создать ресурс с фронт енда с помощью FormIt.
            все нормально все данные ловятся, но при попытке сохранить русурс выбивает
            Вы поле alias заполняете при создании ресурса? Если можете часть кода вашего сниппета, который создаёт новый ресурс.
            Не один десяток уже сделал сайтов с созданием ресурсов с фронта, может что и подскажу...
              Valentin Rasulov - Industrial design (Hobbies - Web Development)
              Development not standard projects on CMF MODx Revolution.
              Small sample of extensions
              • 31246 ☆ A M B ☆
              • 428 Posts
              Quote from: rachind at Feb 01, 2012, 04:52 AM
              Тоже наткнулся на такую проблему. Понял только что это связано с правами на создание ресурсов у веб-пользователей. У меня, например, ресурс создается, только если пользователь не авторизован.
              1) нужно ставить проверку юзера - т.е. если не авторизован то редриг на другую страницу.
              2) Не пытайтесь создать ресурс если вы находитесь в админки и в одном браузере. (или выйдите с админки Модекса или откройте страницу, где создаете ресурс и войдите под пользователем в другом браузере)
              3) Права - группа пользователей, которым вы хотите дать разрешения на добавления ресурсов, должны иметь права и роли на создание ресурса (не путайте mrg и web).
                Valentin Rasulov - Industrial design (Hobbies - Web Development)
                Development not standard projects on CMF MODx Revolution.
                Small sample of extensions