Przeglądaj źródła

Ticket #4931 - Allow to create contexts using Create Post (Public) form.

AntonLV 1 rok temu
rodzic
commit
f47c709c59

+ 7 - 3
modules/base/general/classes/BxBaseModGeneralFormsEntryHelper.php

@@ -839,11 +839,15 @@ class BxBaseModGeneralFormsEntryHelper extends BxDolProfileForms
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
 
-        $sKeyUri = 'URI_' . strtoupper($sType) . '_ENTRY';
-        if(empty($CNF[$sKeyUri]))
+        $sUri = '';
+        if(($sKeyUri = 'URI_' . strtoupper($sType) . '_ENTRY') && !empty($CNF[$sKeyUri]))
+            $sUri = $CNF[$sKeyUri];
+        if(!$sUri && $sType == 'add' && ($sKeyUri = 'URI_EDIT_ENTRY') && !empty($CNF[$sKeyUri]))
+            $sUri = str_replace('edit', 'create', $CNF[$sKeyUri]);
+        if(!$sUri)
             return;
 
-        $oForm->setAbsoluteActionUrl(bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF[$sKeyUri])));
+        $oForm->setAbsoluteActionUrl(bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $sUri)));
     }
 
     protected function _getRedirectFromContext($sAction, $aContentInfo)

+ 4 - 3
template/scripts/BxBaseMenuCreatePost.php

@@ -49,12 +49,13 @@ class BxBaseMenuCreatePost extends BxTemplMenuCustom
             if(!isset($aModules[$sModule]))
                 continue;
 
-            if(BxDolRequest::serviceExists($sModule, 'act_as_profile'))
-                continue;
+            if($this->_mixedContextId !== false && ($aContextInfo = BxDolProfileQuery::getInstance()->getInfoById(abs($this->_mixedContextId)))) {
+                if(BxDolRequest::serviceExists($sModule, 'act_as_profile'))
+                    continue;
 
-            if($this->_mixedContextId !== false && ($aContextInfo = BxDolProfileQuery::getInstance()->getInfoById(abs($this->_mixedContextId))))
                 if(bx_srv($aContextInfo['type'], 'check_allowed_post_in_profile', [$aContextInfo['content_id'], $sModule]) !== CHECK_ACTION_RESULT_ALLOWED)
                     continue;
+            }
 
             $aResult[$iKey] = array_merge($aMenuItem, array(
                 'id' => $sModule,