日本語版
最新ニュース
企業

カテゴリ管理 – 古い学校に行くことで、違反しないようにしようとしています

バスを1時間待ってから、3つが一度に来ます。 同じことが最近私に起こりました。そこでは、老化したWebサイト(Opti 11)と新しいコンテンツ戦略を備えた複数のクライアントが、すべてのコンテンツとカテゴリがマッピングされ、最適化する単一の管理エクスペリエンス以外でそれらを更新できるようにしたいと考えていました。 私たちはオプションを探していましたが、言うまでもなく、Opti 12には実行可能なソリューションがありましたが、クライアントのオプションはOpti 11でゼロに制限されていました。 だから、私は彼らがより良く、1つずつ、彼らのカテゴリを使用して彼らのカテゴリを管理できるようにするソリューションの作成を設定しました.... excel! そうです、私はExcelのためにSQL Management StudioとVBAを起動しました。今、私たちにとってとても役立ったことをあなたと共有しています。 あなた自身の責任でこれを使用してください。 Optiからコンテンツデータとカテゴリデータを取得します 一時的なテーブルと救助へのメッセージの表示... DROP TABLE IF EXISTS #pages DROP TABLE IF EXISTS #categories DECLARE @i int = 0 DECLARE @j int = 0 DECLARE @n int =…

カテゴリ管理 – 古い学校に行くことで、違反しないようにしようとしています

1744084418
2025-04-07 14:12:00

バスを1時間待ってから、3つが一度に来ます。

同じことが最近私に起こりました。そこでは、老化したWebサイト(Opti 11)と新しいコンテンツ戦略を備えた複数のクライアントが、すべてのコンテンツとカテゴリがマッピングされ、最適化する単一の管理エクスペリエンス以外でそれらを更新できるようにしたいと考えていました。

私たちはオプションを探していましたが、言うまでもなく、Opti 12には実行可能なソリューションがありましたが、クライアントのオプションはOpti 11でゼロに制限されていました。

だから、私は彼らがより良く、1つずつ、彼らのカテゴリを使用して彼らのカテゴリを管理できるようにするソリューションの作成を設定しました…. excel!

そうです、私はExcelのためにSQL Management StudioとVBAを起動しました。今、私たちにとってとても役立ったことをあなたと共有しています。

あなた自身の責任でこれを使用してください。

Optiからコンテンツデータとカテゴリデータを取得します

一時的なテーブルと救助へのメッセージの表示…

DROP TABLE IF EXISTS #pages

DROP TABLE IF EXISTS #categories

DECLARE @i int = 0

DECLARE @j int = 0

DECLARE @n int = 0 

DECLARE @m int = 0

DECLARE @catName varchar(100)

DECLARE @catNames varchar(max)

CREATE TABLE #pages(pkID int identity(1,1), pageID int, linkurl varchar(500), PageName varchar(1000)) INSERT INTO #pages (pageID, linkurl, PageName) SELECT TOP 100 pkid, CONCAT(REPLACE(linkurl,'~/','"https://websiteurl/'),'"'), Name FROM tblContent INNER JOIN tblContentLanguage ON pkID = fkContentID WHERE URLSegment is not null AND fkLanguageBranchID = 2  ORDER BY pkID  -- feel free to choose the pages here that you want to categorise

CREATE TABLE #categories(pkID int identity(1,1), catID int, catName varchar(100)) INSERT INTO #categories(catID, catName) SELECT pkid, CONCAT('"',pkid,'-',CategoryName,'"') from tblCategory ORDER BY pkID

SET @n = (SELECT COUNT(*) FROM #categories)

SET @catNames=",,"

WHILE @i

BEGIN

    SET @i = @i + 1

SET @catName = (SELECT TOP 1 catName FROM #categories WHERE pkID = @i)

SET @catNames = CONCAT(@catnames,',',@catname)

END

PRINT @catnames

SET @i = 0

SET @m = (SELECT COUNT(*) FROM #pages)

SET @n = (SELECT COUNT(*) FROM #categories)

DECLARE @pageCatRow varchar(1000)

DECLARE @boolPageCat int 

DECLARE @pID int

DECLARE @cID int

WHILE @i

BEGIN

SET @i = @i + 1;

SET @j = 0

SET @pageCatRow = ''

SET @pageCatRow = (SELECT top 1 CONCAT(pageID,',',linkurl,',"' ,PageName,'"') FROM #pages WHERE pkID = @i)

WHILE @j

BEGIN

SET @j = @j + 1

SET @pid = (SELECT pageID FROM #pages where pkID = @i)

SET @cid = (SELECT catID FROM #categories where pkid = @j) 

SET @boolPageCat = (SELECT COUNT(*) FROM tblContentCategory WHERE fkContentID= @pid AND fkCategoryID = @cid)

SET @pagecatrow = CONCAT(@pageCatRow,',',@boolPageCat)

END

PRINT @pageCatRow

END

DROP TABLE #pages

DROP TABLE #categories

これはこのように見えるものを生み出します…

コピーを渡してExcelにドロップします – カテゴリザーが何が起こっているのかをよりよく見ることができるように、独自のフォーマットを行う必要があるかもしれませんが、そこから、必要なコンテンツとカテゴリに1と0を追加できます。

コンテンツとカテゴリのデータをOptiに戻します

すべてが更新されたら、Excelで開発者モードに進むと、これを使用できます…

Sub MakeMeSomeSQL()

    Dim ws As Worksheet
    Dim lastRow As Long, lastCol As Long
    Dim i As Long, j As Long
    Set ws = ThisWorkbook.Worksheets("Sheet2")
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    
    For i = 1 To lastRow
    
        For j = 4 To lastCol
        
            If ws.Cells(i, j).Value = "1" Then
            
            Debug.Print ("INSERT INTO tblWorkContentCategory (fkWorkContentID,fkCategoryID,CategoryType,ScopeName) VALUES ((SELECT TOP 1 pkID FROM tblWorkContent WHERE fkContentID = " & ws.Cells(i, 1) & " ORDER BY pkID DESC)," & Left(ws.Cells(1, j), InStr(ws.Cells(1, j), "-") - 1) & ",0,0)")
            Debug.Print ("INSERT INTO tblContentCategory (fkContentID, fkCategoryID, CategoryType, fkLanguageBranchID, ScopeName) VALUES (" & ws.Cells(i, 1) & "," & Left(ws.Cells(1, j), InStr(ws.Cells(1, j), "-") - 1) & ",0,2,0)")
            
            End If
        
        Next j
    
    Next i

End Sub

あなたはあなたのことを確実にしたいと思うでしょう 言語ブランチが設定されています、ただし、上記は独自のSQLを作成してコンテンツとカテゴリデータを再挿入します。

上記が作成したSQLを実行する前に、最初に既存のデータをすべて削除してください…

DELETE FROM tblContentCategory WHERE fkContentID IN (SELECT pkID FROM tblContent WHERE fkParentID = 329) -- only delete the data from pages you'll be reimporting

DELETE FROM tblWorkContentCategory WHERE fkWorkContentID IN (SELECT pkID FROM tblWorkContent WHERE fkContentID IN (SELECT pkID FROM tblContent WHERE fkParentID = 329)) -- only delete the data from pages you'll be reimporting

私が言うように、あなた自身の責任で使用しますが、何百ものページといくつかのカテゴリがある場合、ここの自動化により、数週間ではないにしても、私たちとクライアントの日を節約できます。

2025年4月7日

#カテゴリ管理 #古い学校に行くことで違反しないようにしようとしています

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。