Advertisement
Ruslan_Rayanov

amp_getPage

Oct 17th, 2022
1,973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.02 KB | None | 0 0
  1. CREATE OR ALTER PROCEDURE [dbo].amp_getPage
  2.     @url nvarchar(MAX)
  3. AS
  4. BEGIN
  5.     -- движок для заполенния amp страниц вида /amp/docs-123123123123
  6.     SET @url = LOWER(@url)
  7.     DECLARE @DOMAIN nvarchar(128) = dbo.as_setting('domain', '')
  8.     DECLARE @code nvarchar(256) = ''
  9.      
  10.     DECLARE @t1 TABLE(created nvarchar(MAX), [image] nvarchar(MAX), title nvarchar(MAX), microdataLD nvarchar(MAX),
  11.         canonical nvarchar(MAX), header nvarchar(MAX), content nvarchar(MAX), footer nvarchar(MAX)
  12.     )
  13.     DECLARE @id INT
  14.     DECLARE @microData nvarchar(MAX)='', @otherItems nvarchar(MAX) = '', @p1 ExtendedDictionaryParameter
  15.            
  16.     IF(LEFT(@url,5) = 'blog-') BEGIN
  17.         SET @code = SUBSTRING(@url, 6, len(@url)-5)
  18.         SELECT @id = id FROM as_articles WHERE LOWER(code)=@code AND isPublish=1
  19.  
  20.         IF(@id>0) BEGIN
  21.             EXEC [dbo].[as_block] @code ='blogArticleMicroData',
  22.                 @itemID =@code,
  23.                 @parameters = @p1,
  24.                 @res =@microData OUTPUT
  25.  
  26.  
  27.            
  28.             EXEC [dbo].[as_block] @code ='blogArticles',
  29.                 @itemID ='1000',
  30.                 @parameters = @p1,
  31.                 @res =@otherItems OUTPUT
  32.  
  33.             INSERT INTO @t1
  34.             SELECT CONVERT(nvarchar(10), created, 120) created,
  35.                 'https://' +@DOMAIN +  isnull([dbo].[rs_resourceLink]('articleBodyImage', art.id, 0), '') image,
  36.                 title title,
  37.                 'https://' +@DOMAIN+ '/blog/'+ LOWER(code) canonical,
  38.                 @microData microdataLD,
  39.                 '<h1>'+title+'</h1>' header,
  40.                 '<img src="'+isnull([dbo].[rs_resourceLink]('articleBodyImage', art.id, 0), '')+'" title="'+title+'" alt="'+title+'" />'+ isnull([text1], '') content,
  41.                 '<div>
  42.                     <a href="'+'https://' +@DOMAIN + '/blog/' + @code+'" target="_blank">Страница-источник на сайте '+@DOMAIN+'</a><br><hr><br>
  43.                     <div style="max-width:600px;">'+isnull(@otherItems, '')+'</div>
  44.                    
  45.                 </div>' footer
  46.             FROM as_articles art WHERE id = @id
  47.         END
  48.     END
  49.  
  50.     IF(LEFT(@url,5) = 'docs-') BEGIN
  51.         SET @code = SUBSTRING(@url, 6, len(@url)-5)
  52.         SELECT @id = id FROM kb_articles WHERE LOWER(code)=@code AND isPublish=1
  53.        
  54.         IF(@id>0) BEGIN
  55.             EXEC [dbo].[as_block] @code ='docArticleMicrodata',
  56.                 @itemID =@code,
  57.                 @parameters = @p1,
  58.                 @res =@microData OUTPUT
  59.             SET @microData = @microData    
  60.             EXEC [dbo].[as_block]
  61.                 @code ='knowlegdeBaseLinks',
  62.                 @itemID = @code,
  63.                 @parameters = @p1,
  64.                 @res = @otherItems  OUTPUT
  65.  
  66.             INSERT INTO @t1
  67.             SELECT CONVERT(nvarchar(10), created, 120) created,
  68.                 'https://falconspace.ru/content/images/logo-ico/180.png' image,
  69.                 title title,
  70.                 'https://' +@DOMAIN+ '/docs/'+ LOWER(code) canonical,
  71.                 @microData microdataLD,
  72.                 '<h1>'+title+'</h1>' header,
  73.                 isnull([text], '') content,
  74.                 '<div>
  75.                     <a href="'+'https://' +@DOMAIN + '/docs/' + @code+'" target="_blank">Страница-источник на сайте '+@DOMAIN+'</a><br><hr><br>
  76.                     <div style="max-width:600px;">'+isnull(@otherItems, '')+'</div>
  77.                    
  78.                 </div>' footer
  79.             FROM kb_articles art WHERE id = @id
  80.         END
  81.     END
  82.  
  83.     SELECT * FROM @t1
  84. END
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement