Просмотр исходного кода

#1091 User friendly URLs: limit uri + alert

Alex Trofimov 4 лет назад
Родитель
Сommit
77412fcfa2
2 измененных файлов с 17 добавлено и 5 удалено
  1. 12 1
      inc/classes/BxDolPage.php
  2. 5 4
      install/sql/system.sql

+ 12 - 1
inc/classes/BxDolPage.php

@@ -380,7 +380,18 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
                 
                 $r = BxDolPageQuery::getSeoLink($sModule, $sPageUri, ['param_value' => $sSeoParamValue]);
                 if (!$r) {
-                    $sUri = uriGenerate ($sSeoTitle, 'sys_seo_links', 'uri', '-', '-', ['module' => $sModule, 'page_uri' => $sPageUri]);
+                    $sSeoTitleLimited = BxTemplFunctions::getInstance()->getStringWithLimitedLength($sSeoTitle, 45);
+                    $sUri = uriGenerate ($sSeoTitleLimited, 'sys_seo_links', 'uri', '-', '-', ['module' => $sModule, 'page_uri' => $sPageUri]);
+
+                    bx_alert('system', 'uri-generate', 0, false, [
+                        'module' => $sModule,
+                        'page_uri' =>$sPageUri,
+                        'param_name' => $sSeoParamName,
+                        'param_value' => $sSeoParamValue,
+                        'title' => $sSeoTitle,
+                        'uri' => &$sUri,
+                    ]);
+
                     BxDolPageQuery::insertSeoLink($sModule, $sPageUri, $sSeoParamName, $sSeoParamValue, $sUri);
                 }
                 elseif ($r['param_name'] == $sSeoParamName) {

+ 5 - 4
install/sql/system.sql

@@ -5507,11 +5507,12 @@ CREATE TABLE `sys_seo_links` (
   `page_uri` varchar(255) NOT NULL,
   `param_name` varchar(32) NOT NULL,
   `param_value` varchar(32) NOT NULL,
-  `uri` varchar(255) NOT NULL,
-  `added` int(11) NOT NULL,
+  `uri` varchar(50) NOT NULL,
+  `added` int(48) NOT NULL,
   PRIMARY KEY (`id`),
-  UNIQUE KEY `module_page_param` (`module`,`page_uri`(48),`param_value`),
-  UNIQUE KEY `module_page_uri` (`module`,`page_uri`(48),`uri`(111))
+  UNIQUE KEY `module_page_param` (`module`,`page_uri`(109),`param_value`),
+  UNIQUE KEY `module_page_uri` (`module`,`page_uri`(109),`uri`),
+  UNIQUE KEY `param_name_value` (`param_name`,`param_value`)
 );
 
 -- --------------------------------------------------------