AntonLV 10 ani în urmă
părinte
comite
bc300b6a37

+ 10 - 1
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -38,6 +38,15 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
                 );
 
                 $sWhereClause = " AND `tp`.`object`=:object ";
+                break;
+
+			case 'by_uri':
+                $aMethod['name'] = 'getRow';
+                $aMethod['params'][1] = array(
+                	'uri' => $aParams['value']
+                );
+
+                $sWhereClause = " AND `tp`.`uri`=:uri ";
                 break;
 
             case 'by_object_full':
@@ -117,7 +126,7 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
                 	'object' => $aParams['value']
                 );
 
-                $sWhereClause = "AND `tp`.`object`=? ";
+                $sWhereClause = "AND `tp`.`object`=:object ";
                 break;
 
             case 'all':

+ 5 - 0
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -289,6 +289,11 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
             $sObject = uriGenerate($sObject, 'sys_objects_page', 'object', 'object');
 
             $sUri = $oForm->getCleanValue('uri');
+            
+            $aPage = array();
+            $this->oDb->getPages(array('type' => 'by_uri', 'value' => $sUri), $aPage, false);
+            if(!empty($aPage) && is_array($aPage)) 
+            	return array('msg' => _t('_adm_bp_err_page_uri'));
 
             $iVisibleFor = BxDolStudioUtils::getVisibilityValue($oForm->getCleanValue('visible_for'), $oForm->getCleanValue('visible_for_levels'));
             BxDolForm::setSubmittedValue('visible_for_levels', $iVisibleFor, $aForm['form_attrs']['method']);