From 6602ea1f025bf637cda2f374c419f2cd6e12d3dd Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Tue, 5 Mar 2019 16:56:36 +0900 Subject: [PATCH 01/55] =?UTF-8?q?Revert=20"fix:=20php5.4,5.5=E3=81=AFtravi?= =?UTF-8?q?s=E3=83=86=E3=82=B9=E3=83=88=E3=81=A75.6=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=82=8B=E3=81=9F=E3=82=81=E5=89=8A=E9=99=A4"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 29e3f149d2cd78ad5d60fd8a729df78c3b71b353. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index e5cc2c5..8657269 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,8 @@ language: php php: + - 5.4 + - 5.5 - 5.6 - 7.0 - 7.1 From a88c9e69fce50aade9d8c3dd19bc307c90855cbd Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Sun, 14 Apr 2019 12:17:41 +0900 Subject: [PATCH 02/55] =?UTF-8?q?fix:=20=E7=A7=BB=E8=A1=8C=E3=81=AEUser?= =?UTF-8?q?=E3=81=AE=E3=83=A1=E3=83=A2=E3=83=AA=E3=83=AA=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E6=94=B9=E5=96=84=E3=81=AB=E3=82=88=E3=82=8B=E3=83=91=E3=83=95?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=B3=E3=82=B9=E6=94=B9=E5=96=84?= =?UTF-8?q?=20fix:=20=E8=A8=80=E8=AA=9E=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=8C=E6=9B=B4=E6=96=B0=E3=81=95=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=9F=E3=82=81=E5=86=8D?= =?UTF-8?q?=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Locale/nc2_to_nc3.pot | 787 +++++++++++++++++++++++- Model/Behavior/Nc2ToNc3BaseBehavior.php | 58 ++ Model/Nc2ToNc3.php | 8 + Model/Nc2ToNc3Frame.php | 8 +- Model/Nc2ToNc3Page.php | 7 +- Model/Nc2ToNc3User.php | 35 +- 6 files changed, 879 insertions(+), 24 deletions(-) diff --git a/Locale/nc2_to_nc3.pot b/Locale/nc2_to_nc3.pot index 105d3b4..e0b626b 100644 --- a/Locale/nc2_to_nc3.pot +++ b/Locale/nc2_to_nc3.pot @@ -13,39 +13,792 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: Console/Command/Nc2ToNc3Shell.php:32 -msgid "Nc2 version is %s. It must be %s" +#: Console/Command/Nc2ToNc3Shell.php:36 +msgid "Enter database name of nc2?" msgstr "" -#: View/Nc2ToNc3/migration.ctp:14 -msgid "Input the database connection information of NetCommons2." +#: Console/Command/Nc2ToNc3Shell.php:41 +msgid "Enter table prefix name of nc2?" msgstr "" -#: View/Nc2ToNc3/migration.ctp:23 -msgid "Datasource" +#: Console/Command/Nc2ToNc3Shell.php:69 +msgid "Enter upload path of nc2?" msgstr "" -#: View/Nc2ToNc3/migration.ctp:30 -msgid "Host" +#: Console/Command/Nc2ToNc3Shell.php:77 +msgid "Enter url of nc2 for converting link in WYSIWYG content?(ex.http://example.com/nc2)" msgstr "" -#: View/Nc2ToNc3/migration.ctp:31 -msgid "Port" +#: Console/Command/Nc2ToNc3Shell.php:85 +msgid "Enter sub directory name?(ex.\"/dirname1/dirname2\") If root is top, enter \"/\"." msgstr "" -#: View/Nc2ToNc3/migration.ctp:32 +#: Model/Nc2ToNc3.php:84 msgid "Database" msgstr "" -#: View/Nc2ToNc3/migration.ctp:33 -msgid "Prefix" +#: Model/Nc2ToNc3.php:103 +msgid "Upload file path" msgstr "" -#: View/Nc2ToNc3/migration.ctp:34 -msgid "Login" +#: Model/Nc2ToNc3.php:111 +msgid "The above Upload file path does not exist." msgstr "" -#: View/Nc2ToNc3/migration.ctp:35 -msgid "Password" +#: Model/Nc2ToNc3.php:119 +msgid "Base url" +msgstr "" + +#: Model/Nc2ToNc3.php:120 +msgid "Input URL of NetCommons2 for converting link in WYSIWYG content." +msgstr "" + +#: Model/Nc2ToNc3.php:179 +msgid "NetCommons2 version is not %s" +msgstr "" + +#: Model/Nc2ToNc3.php:188 +msgid "NetCommons2 table is not found." +msgstr "" + +#: Model/Nc2ToNc3.php:237 +msgid "Migration start." +msgstr "" + +#: Model/Nc2ToNc3.php:309 +msgid "Migration end." +msgstr "" + +#: Model/Nc2ToNc3AccessCounter.php:56 +msgid "AccessCounter Migration start." +msgstr "" + +#: Model/Nc2ToNc3AccessCounter.php:65 +msgid "AccessCounter Migration end." +msgstr "" + +#: Model/Nc2ToNc3AccessCounter.php:77 +msgid " AccessCounter data Migration start." +msgstr "" + +#: Model/Nc2ToNc3AccessCounter.php:168 +msgid " AccessCounter data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Announcement.php:60 +msgid "Announcement Migration start." +msgstr "" + +#: Model/Nc2ToNc3Announcement.php:155 +msgid "Announcement Migration end." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:57 +msgid "Bbs Migration start." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:90 +msgid "Bbs Migration end." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:103 +msgid " Bbs data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:140 +#: Model/Nc2ToNc3Link.php:157 +#: Model/Nc2ToNc3PhotoAlbum.php:362 +#: Model/Behavior/Nc2ToNc3TopicBehavior.php:147 +msgid "%s No room ID corresponding to nc3" +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:204 +msgid " Bbs data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:217 +msgid " Bbs Article data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:303 +msgid " Bbs Article data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:315 +msgid " BbsFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Bbs.php:377 +msgid " BbsFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:59 +msgid "Blog Migration start." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:95 +msgid "Blog Migration end." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:108 +msgid " Blog data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:195 +msgid " Blog data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:207 +msgid " BlogFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:269 +msgid " BlogFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:282 +msgid " Blog Entry data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:373 +msgid " Blog Entry data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:385 +#: Model/Nc2ToNc3Multidatabase.php:590 +msgid " Content Comment data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Blog.php:454 +#: Model/Nc2ToNc3Multidatabase.php:659 +msgid " Content Comment Migration end." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:54 +msgid "Cabinet Migration start." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:84;268 +msgid "Cabinet Migration end." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:97 +msgid " Cabinet data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:119;296 +#: Model/Nc2ToNc3Calendar.php:274 +#: Model/Nc2ToNc3Faq.php:133;141 +#: Model/Nc2ToNc3Frame.php:247;256 +#: Model/Nc2ToNc3Iframe.php:104 +#: Model/Nc2ToNc3Link.php:340 +#: Model/Nc2ToNc3PhotoAlbum.php:125 +#: Model/Nc2ToNc3Questionnaire.php:132;140;219 +#: Model/Nc2ToNc3Quiz.php:132;140;224 +#: Model/Nc2ToNc3Registration.php:118;125;217;333 +#: Model/Nc2ToNc3Reservation.php:882 +#: Model/Nc2ToNc3Search.php:97 +#: Model/Nc2ToNc3Task.php:121;302 +#: Model/Behavior/Nc2ToNc3BbsBehavior.php:291 +#: Model/Behavior/Nc2ToNc3BlogBehavior.php:70;168 +#: Model/Behavior/Nc2ToNc3CabinetBehavior.php:57;169 +#: Model/Behavior/Nc2ToNc3CalendarBehavior.php:68;76;172;276 +#: Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php:58 +#: Model/Behavior/Nc2ToNc3FaqBehavior.php:195 +#: Model/Behavior/Nc2ToNc3MenuBehavior.php:49;116;357 +#: Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php:70;393 +#: Model/Behavior/Nc2ToNc3QuestionnaireBehavior.php:161;203;530;553;561 +#: Model/Behavior/Nc2ToNc3QuizBehavior.php:148;190;536;559;567 +#: Model/Behavior/Nc2ToNc3RegistrationBehavior.php:101;194;487;510;518 +#: Model/Behavior/Nc2ToNc3TopicBehavior.php:54 +#: Model/Behavior/Nc2ToNc3VideoBehavior.php:73 +msgid "%s does not migration." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:180 +msgid " Cabinet data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:193 +msgid " Cabinet file Migration start." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:280 +#: Model/Nc2ToNc3Registration.php:317 +#: Model/Nc2ToNc3Task.php:286 +msgid " Frame data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Cabinet.php:351 +#: Model/Nc2ToNc3Registration.php:391 +#: Model/Nc2ToNc3Task.php:357 +msgid " Frame data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:68 +msgid "Calendar Migration start." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:109 +msgid "Calendar Migration end." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:121 +msgid " CalendarPermission data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:162 +msgid " CalendarPermission data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:175 +msgid " CalendarFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:216 +msgid " CalendarFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:229 +msgid " CalendarEvent data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Calendar.php:319 +msgid " CalendarEvent data Migration end." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:54 +msgid "CircularNotice Migration start." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:60 +msgid "CircularNotice is not installed." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:79 +msgid "CircularNotice Migration end." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:92 +msgid " CircularNoticeFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:185 +msgid " CircularNoticeFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:198 +msgid " CircularNoticeContent data Migration start." +msgstr "" + +#: Model/Nc2ToNc3CircularNotice.php:280 +msgid " CircularNoticeContent data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:63 +msgid "Faq Migration start." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:69 +msgid "Faq is not installed." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:98 +msgid "Faq Migration end." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:111 +msgid " Faq data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:205 +msgid " Faq data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:218 +msgid " FaqQuestion data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:286 +msgid " FaqQuestion data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:299 +msgid " FaqFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Faq.php:353 +msgid " FaqFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Frame.php:60 +msgid "Frame Migration start." +msgstr "" + +#: Model/Nc2ToNc3Frame.php:70 +msgid "Frame Migration end." +msgstr "" + +#: Model/Nc2ToNc3Frame.php:119 +#: Model/Nc2ToNc3Page.php:159 +#: Model/Nc2ToNc3User.php:160 +msgid "Many error data. Please check the log. %s" +msgstr "" + +#: Model/Nc2ToNc3Iframe.php:60 +msgid "Iframe Migration start." +msgstr "" + +#: Model/Nc2ToNc3Iframe.php:69 +msgid "Iframe Migration end." +msgstr "" + +#: Model/Nc2ToNc3Iframe.php:82 +msgid " Iframe data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Iframe.php:166 +msgid " Iframe data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Link.php:66 +msgid "Link Migration start." +msgstr "" + +#: Model/Nc2ToNc3Link.php:96 +msgid "Link Migration end." +msgstr "" + +#: Model/Nc2ToNc3Link.php:109;242 +msgid " Link data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Link.php:229;314 +msgid " Link data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Link.php:327 +msgid " LinkFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Link.php:391 +msgid " LinkFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Menu.php:59 +msgid "Menu Migration start." +msgstr "" + +#: Model/Nc2ToNc3Menu.php:77 +msgid "Menu Migration end." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:59 +msgid "Multidatabase Migration start." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:138 +msgid "Multidatabase Migration end." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:151 +msgid " Multidatabase data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:286 +msgid " Blog Multidatabase Migration end." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:298 +msgid " MultidatabaseFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:360 +msgid " MultidatabaseFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:373 +msgid " MultidatabaseMetadata Migration start." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:431 +msgid " MultidatabaseMetadata Migration end." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:444 +msgid " Multidatabase Content Migration start." +msgstr "" + +#: Model/Nc2ToNc3Multidatabase.php:578 +msgid " Multidatabase Content Migration end." +msgstr "" + +#: Model/Nc2ToNc3Page.php:71 +msgid "Page Migration start." +msgstr "" + +#: Model/Nc2ToNc3Page.php:113 +msgid "Page Migration end." +msgstr "" + +#: Model/Nc2ToNc3Page.php:294;300 +#: Model/Nc2ToNc3Room.php:252;322 +#: Model/Nc2ToNc3UserAttribute.php:348;375;459 +#: Model/Behavior/Nc2ToNc3UserAttributeBehavior.php:47;54;79;91;103 +msgid "%s is not migration." +msgstr "" + +#: Model/Nc2ToNc3Page.php:329 +msgid "Permalink of %s is change , because of empty." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:69 +msgid "PhotoAlbum Migration start." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:90 +msgid "PhotoAlbum Migration end." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:103 +msgid " PhotoAlbumFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:180 +msgid " PhotoAlbumFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:197 +msgid " PhotoAlbum data Migration start." +msgstr "" + +#: Model/Nc2ToNc3PhotoAlbum.php:339 +msgid " PhotoAlbum data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:70 +msgid "Questionnaire Migration start." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:100 +msgid "Questionnaire Migration end." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:112 +msgid " Questionnaire data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:186 +msgid " Questionnaire data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:199 +msgid " QuestionnaireFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:269 +msgid " QuestionnaireFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:282 +msgid " QuestionnaireAnswerSummary data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:356 +msgid " QuestionnaireAnswerSummary data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:372 +msgid " QuestionnaireAnswer data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Questionnaire.php:411 +msgid " QuestionnaireAnswer data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:70 +msgid "Quiz Migration start." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:100 +msgid "Quiz Migration end." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:112 +msgid " Quiz data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:191 +msgid " Quiz data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:204 +msgid " QuizFrameSetting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:274 +msgid " QuizFrameSetting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:287 +msgid " QuizAnswerSummary data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:361 +msgid " QuizAnswerSummary data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:377 +msgid " QuizAnswer data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Quiz.php:416 +msgid " QuizAnswer data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:63 +msgid "Registration Migration start." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:85 +msgid "Registration Migration end." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:98 +msgid " Registration data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:185 +msgid " Registration data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:198 +msgid " RegistrationData data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:262 +msgid " RegistrationAnswerSummary data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:277 +msgid " RegistrationAnswer data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Registration.php:304 +msgid " RegistrationAnswer data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:59 +msgid "Reservation Migration start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:108 +msgid "Reservation Reservation start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:114 +msgid "Reservation Reservation is exist." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:155 +msgid "Reservation Reservation end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:196 +msgid "Reservation Location start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:299 +msgid "Reservation Location end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:366 +msgid "Reservation LocationsRoom start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:409 +msgid "Reservation LocationsRoom end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:471 +msgid "Reservation LocationReservable start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:503 +msgid "Reservation LocationReservable end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:514 +msgid "Reservation Rrule start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:556 +msgid "Reservation Rrule end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:632 +msgid "Reservation Event start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:674 +msgid "Reservation Event end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:775 +msgid "Reservation FrameSetting start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:783 +msgid "Reservation FrameSetting end." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:954 +msgid " Reservation Timeframe Migration start." +msgstr "" + +#: Model/Nc2ToNc3Reservation.php:1002 +msgid " ReservationTimeframe data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Room.php:84 +msgid "Room Migration start." +msgstr "" + +#: Model/Nc2ToNc3Room.php:138 +msgid "Room Migration end." +msgstr "" + +#: Model/Nc2ToNc3RssReader.php:61 +msgid "RssReader Migration start." +msgstr "" + +#: Model/Nc2ToNc3RssReader.php:70 +msgid "RssReader Migration end." +msgstr "" + +#: Model/Nc2ToNc3RssReader.php:83 +msgid " RssReader data Migration start." +msgstr "" + +#: Model/Nc2ToNc3RssReader.php:161 +msgid " RssReader data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Search.php:61 +msgid "Search Migration start." +msgstr "" + +#: Model/Nc2ToNc3Search.php:70 +msgid "Search Migration end." +msgstr "" + +#: Model/Nc2ToNc3Search.php:83 +msgid " Search data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Search.php:146 +msgid " Search data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Task.php:58 +msgid "Task Migration start." +msgstr "" + +#: Model/Nc2ToNc3Task.php:85 +msgid "Task Migration end." +msgstr "" + +#: Model/Nc2ToNc3Task.php:98 +msgid " Task data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Task.php:193 +msgid " Task data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Task.php:206 +msgid " TaskContent data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Task.php:273 +msgid " TaskContent data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Topic.php:59 +msgid "Topic Migration start." +msgstr "" + +#: Model/Nc2ToNc3Topic.php:68 +msgid "Topic Migration end." +msgstr "" + +#: Model/Nc2ToNc3Upload.php:67;80 +#: Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php:258 +#: Model/Behavior/Nc2ToNc3WysiwygBehavior.php:169 +msgid "%s not found ." +msgstr "" + +#: Model/Nc2ToNc3User.php:114 +msgid "User Migration start." +msgstr "" + +#: Model/Nc2ToNc3User.php:124 +msgid "User Migration end." +msgstr "" + +#: Model/Nc2ToNc3UserAttribute.php:79 +msgid "UserAttribute Migration start." +msgstr "" + +#: Model/Nc2ToNc3UserAttribute.php:90 +msgid "UserAttribute Migration end." +msgstr "" + +#: Model/Nc2ToNc3UserAttribute.php:394 +msgid "%s does not merge." +msgstr "" + +#: Model/Nc2ToNc3Video.php:54 +msgid "Video Migration start." +msgstr "" + +#: Model/Nc2ToNc3Video.php:60 +msgid "Multimedia is not installed." +msgstr "" + +#: Model/Nc2ToNc3Video.php:78 +msgid "Video Migration end." +msgstr "" + +#: Model/Nc2ToNc3Video.php:91 +msgid " Video Setting data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Video.php:184 +msgid " Video Setting data Migration end." +msgstr "" + +#: Model/Nc2ToNc3Video.php:244 +msgid " Video data Migration start." +msgstr "" + +#: Model/Nc2ToNc3Video.php:328 +msgid " Video data Migration end." +msgstr "" + +#: Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php:81 +msgid "%s does not migration. Not placed in nc2 room" +msgstr "" + +#: Model/Behavior/Nc2ToNc3UserBehavior.php:53 +msgid "%s is not active.Resend approval mail." +msgstr "" + +#: Model/Behavior/Nc2ToNc3UserValidationBehavior.php:86 +msgid "The require attribute of nc3 missing in nc2." +msgstr "" + +#: View/Nc2ToNc3/migration.ctp:13 +msgid "Go here for the migration from NetCommons2 documentation." msgstr "" diff --git a/Model/Behavior/Nc2ToNc3BaseBehavior.php b/Model/Behavior/Nc2ToNc3BaseBehavior.php index 6ec2fab..74b7d28 100644 --- a/Model/Behavior/Nc2ToNc3BaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3BaseBehavior.php @@ -220,6 +220,29 @@ public function convertTimezone(Model $model, $timezoneOffset) { return $this->_convertTimezone($timezoneOffset); } +/** + * 実行時間の計測開始時間 + * + * @param Model $model Model using this behavior. + * @return float 現在の Unix タイムスタンプのマイクロ秒 + */ + public function executionTimeStart(Model $model) { + return $this->_executionTimeStart(); + } + +/** + * 実行時間の計測終了 + * + * @param Model $model Model using this behavior. + * @param string $methodName メソッド名 + * @param float $timeStart 計測開始時間(秒) + * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() + * @return void + */ + public function executionTimeEnd(Model $model, $methodName, $timeStart, $executionFlushTime) { + $this->_executionTimeEnd($methodName, $timeStart, $executionFlushTime); + } + /** * Write migration log. * @@ -684,4 +707,39 @@ protected function _removeUseCurrent() { Current::remove('Plugin.key'); Current::remove('Room.id'); } + +/** + * 実行時間の計測開始時間 + * + * @return float 現在の Unix タイムスタンプのマイクロ秒 + */ + protected function _executionTimeStart() { + return microtime(true); + } + +// @codingStandardsIgnoreStart +/** + * 実行時間の計測終了 + * + * @param string $methodName メソッド名 + * @param float $timeStart 計測開始時間(秒) + * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() + * @return void + */ + protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime) { + // @codingStandardsIgnoreEnd + $executionTime = microtime(true) - $timeStart; + //CakeLog::debug('[' . $methodName . '] ' . $executionTime . ' 秒'); + //CakeLog::debug('[' . $methodName . '] ' . "memory: " . memory_get_usage(true)); + + // $User->saveUserをループすると、UserのSaveUserBehaviorのafterSaveで、{$spaceModel}->afterUserSaveを繰り返すことにより + // 繰り返す事で使用メモリが増え続ける。 メモリが増えると徐々にsaveの処理速度が遅くなる + // ClassRegistry::flush()でクリアできるが、毎回実行するには処理が重い。 + // そのため、実行時間が例えば1.5秒以上かかり処理が遅くなってきたら、ClassRegistryをいったんクリアするよう対応する。 + // この現象はバッチで使う移行プラグイン特有のもの。画面では問題ないと思われる。 + if ($executionTime >= $executionFlushTime) { + //CakeLog::debug('[' . $methodName . '] ClassRegistry::flush()'); + ClassRegistry::flush(); + } + } } diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 1f6ba94..e702537 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -224,6 +224,10 @@ public function create($data = array(), $filterKey = false) { * @return bool True on success */ public function migration($data) { + // 移行ツールは、コントローラ経由で当メソッド(migration)を呼び出してるため、システム設定>サーバ設定>PHP最大メモリ数(初期値:128M) + // がセットされる。バッチ実行がメインのため、ここでメモリを無制限に設定 + ini_set('memory_limit', '-1'); + $this->set($data); if (!$this->validates()) { @@ -286,6 +290,10 @@ public function migration($data) { $MigrationModel->calledCakeMigration) { ClassRegistry::addObject('Nc2ToNc3', $this); } + + // ClassRegistryが移行で各プラグインのモデルのsave系を実行すると、処理が遅くなる & メモリ食うため、 + // migrationModelが切り替わるタイミングで、いったん初期化する。 + ClassRegistry::flush(); } $this->writeMigrationLog(__d('nc2_to_nc3', 'Migration end.')); diff --git a/Model/Nc2ToNc3Frame.php b/Model/Nc2ToNc3Frame.php index d20098a..5c0defb 100644 --- a/Model/Nc2ToNc3Frame.php +++ b/Model/Nc2ToNc3Frame.php @@ -55,6 +55,7 @@ class Nc2ToNc3Frame extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Frame Migration start.')); @@ -75,6 +76,7 @@ public function migrate() { * Save Frame from Nc2 while dividing. * * @return bool True on success. + * @throws Exception */ private function __saveFrameFromNc2WhileDividing() { $limit = 1000; @@ -105,6 +107,8 @@ private function __saveFrameFromNc2WhileDividing() { ]; $numberOfBlocks = 0; + //$numberOfUsers = $Nc2Block->find('count', $query); + //$query['limit'] = $limit; while ($nc2Blocks = $Nc2Block->find('all', $query)) { if (!$this->__saveFrameFromNc2($nc2Blocks)) { return false; @@ -116,7 +120,9 @@ private function __saveFrameFromNc2WhileDividing() { if ($errorRate >= 0.5) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', 'Many error data.Please check the log.') + __d('nc2_to_nc3', + 'Many error data. Please check the log. %s', + ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2BlockCount: ' . $numberOfBlocks]) ] ]; return false; diff --git a/Model/Nc2ToNc3Page.php b/Model/Nc2ToNc3Page.php index 8133a23..dbafd55 100644 --- a/Model/Nc2ToNc3Page.php +++ b/Model/Nc2ToNc3Page.php @@ -120,6 +120,7 @@ public function migrate() { * * @param string $nc2LangDirName Nc2Page lang_dirname. * @return bool True on success. + * @throws Exception */ private function __savePageFromNc2WhileDividing($nc2LangDirName) { $limit = 1000; @@ -144,6 +145,8 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { $this->changeNc3CurrentLanguage($nc2LangDirName); $numberOfPages = 0; + //$numberOfUsers = $Nc2Page->find('count', $query); + //$query['limit'] = $limit; while ($nc2Pages = $Nc2Page->find('all', $query)) { if (!$this->__savePageFromNc2($nc2Pages)) { $this->restoreNc3CurrentLanguage(); @@ -156,7 +159,9 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { if ($errorRate >= 0.5 && $numberOfPages > 100) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', 'Many error data.Please check the log.') + __d('nc2_to_nc3', + 'Many error data. Please check the log. %s', + ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2PagesCount: ' . $numberOfPages]) ] ]; diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index ce50472..30187dc 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -45,6 +45,13 @@ */ class Nc2ToNc3User extends Nc2ToNc3AppModel { +/** + * この実行時間(秒)を越えたらClassRegistry::flush() + * + * @var float + */ + public $executionFlushTime = 1.5; + /** * Custom database table name, or null/false if no table association is desired. * @@ -108,6 +115,7 @@ public function beforeValidate($options = array()) { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'User Migration start.')); @@ -128,6 +136,7 @@ public function migrate() { * Save User from Nc2 while dividing. * * @return bool True on success. + * @throws Exception */ private function __saveUserFromNc2WhileDividing() { $limit = 1000; @@ -139,23 +148,29 @@ private function __saveUserFromNc2WhileDividing() { 'Nc2User.insert_time', 'Nc2User.user_id' ], - 'limit' => $limit, + //'limit' => $limit, 'offset' => 0, ]; - $numberOfUsers = 0; + // NC2ユーザ件数 + //$numberOfUsers = 0; + $numberOfUsers = $Nc2User->find('count', $query); + + $query['limit'] = $limit; while ($nc2Users = $Nc2User->find('all', $query)) { if (!$this->__saveUserFromNc2($nc2Users)) { return false; } - $numberOfUsers += count($nc2Users); + //$numberOfUsers += count($nc2Users); $errorRate = round($this->__numberOfValidationError / $numberOfUsers); // 5割エラー発生で止める if ($errorRate >= 0.5) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', 'Many error data.Please check the log.') + __d('nc2_to_nc3', + 'Many error data. Please check the log. %s', + ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2UserCount: ' . $numberOfUsers]) ] ]; return false; @@ -180,16 +195,22 @@ private function __saveUserFromNc2($nc2Users) { $this->saveExistingMap($nc2Users); foreach ($nc2Users as $nc2User) { + // 実行時間の計測開始時間 + /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ + $timeStart = $this->executionTimeStart(); + $User->begin(); try { if (!$this->isMigrationRow($nc2User)) { $User->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $data = $this->__generateNc3Data($nc2User); if (!$data) { $User->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -210,19 +231,21 @@ private function __saveUserFromNc2($nc2Users) { $this->__numberOfValidationError++; - $User->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } // Nc3Room,Nc3Pageの値をNC2Pageの値に更新 if (!$this->__saveRoomAndPageFromNc2($nc2User, $User->id)) { $User->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2UserId = $nc2User['Nc2User']['user_id']; if ($this->getMap($nc2UserId)) { $User->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -232,6 +255,7 @@ private function __saveUserFromNc2($nc2Users) { $this->saveMap('User', $idMap); $User->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない @@ -568,6 +592,7 @@ private function __generateNc3RolesRoomsUser($nc3User, $nc2User) { * @param array $nc2User Nc2User data. * @param string $nc3UserId Nc3User id. * @return bool True on success + * @throws Exception */ private function __saveRoomAndPageFromNc2($nc2User, $nc3UserId) { $nc2Page = $this->getNc2PrivateRoomByUserId($nc2User['Nc2User']['user_id']); From 84907684759177b40c37648213aaf6f32569314a Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Sun, 14 Apr 2019 15:43:38 +0900 Subject: [PATCH 03/55] =?UTF-8?q?fix:=20=E3=82=AD=E3=83=A3=E3=83=93?= =?UTF-8?q?=E3=83=8D=E3=83=83=E3=83=88=E7=A7=BB=E8=A1=8C=E3=81=AE=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E5=87=BA=E5=8A=9B=E9=96=93=E9=81=95=E3=81=84=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Cabinet.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Model/Nc2ToNc3Cabinet.php b/Model/Nc2ToNc3Cabinet.php index 1975b0b..2bbaf18 100644 --- a/Model/Nc2ToNc3Cabinet.php +++ b/Model/Nc2ToNc3Cabinet.php @@ -265,7 +265,7 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { Current::remove('Room.id'); Current::remove('Plugin.key'); - $this->writeMigrationLog(__d('nc2_to_nc3', 'Cabinet Migration end.')); + $this->writeMigrationLog(__d('nc2_to_nc3', ' Cabinet file Migration end.')); return true; } From 5923eff95e06655d7b56b1d4907763a75af9ad2d Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Sun, 14 Apr 2019 18:03:33 +0900 Subject: [PATCH 04/55] =?UTF-8?q?fix:=20=E3=83=91=E3=83=95=E3=82=A9?= =?UTF-8?q?=E3=83=BC=E3=83=9E=E3=83=B3=E3=82=B9=E3=83=AD=E3=82=B0=E5=87=BA?= =?UTF-8?q?=E5=8A=9B=E8=A6=8B=E7=9B=B4=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Locale/nc2_to_nc3.pot | 58 +++++++++++++++++-------- Model/Behavior/Nc2ToNc3BaseBehavior.php | 39 +++++++++++++---- Model/Behavior/Nc2ToNc3UserBehavior.php | 13 ++++++ Model/Nc2ToNc3.php | 8 +++- Model/Nc2ToNc3User.php | 3 ++ 5 files changed, 93 insertions(+), 28 deletions(-) diff --git a/Locale/nc2_to_nc3.pot b/Locale/nc2_to_nc3.pot index e0b626b..e985eb3 100644 --- a/Locale/nc2_to_nc3.pot +++ b/Locale/nc2_to_nc3.pot @@ -65,7 +65,7 @@ msgstr "" msgid "Migration start." msgstr "" -#: Model/Nc2ToNc3.php:309 +#: Model/Nc2ToNc3.php:305 msgid "Migration end." msgstr "" @@ -178,7 +178,7 @@ msgstr "" msgid "Cabinet Migration start." msgstr "" -#: Model/Nc2ToNc3Cabinet.php:84;268 +#: Model/Nc2ToNc3Cabinet.php:84 msgid "Cabinet Migration end." msgstr "" @@ -189,7 +189,7 @@ msgstr "" #: Model/Nc2ToNc3Cabinet.php:119;296 #: Model/Nc2ToNc3Calendar.php:274 #: Model/Nc2ToNc3Faq.php:133;141 -#: Model/Nc2ToNc3Frame.php:247;256 +#: Model/Nc2ToNc3Frame.php:269;278 #: Model/Nc2ToNc3Iframe.php:104 #: Model/Nc2ToNc3Link.php:340 #: Model/Nc2ToNc3PhotoAlbum.php:125 @@ -223,6 +223,10 @@ msgstr "" msgid " Cabinet file Migration start." msgstr "" +#: Model/Nc2ToNc3Cabinet.php:268 +msgid " Cabinet file Migration end." +msgstr "" + #: Model/Nc2ToNc3Cabinet.php:280 #: Model/Nc2ToNc3Registration.php:317 #: Model/Nc2ToNc3Task.php:286 @@ -331,17 +335,17 @@ msgstr "" msgid " FaqFrameSetting data Migration end." msgstr "" -#: Model/Nc2ToNc3Frame.php:60 +#: Model/Nc2ToNc3Frame.php:68 msgid "Frame Migration start." msgstr "" -#: Model/Nc2ToNc3Frame.php:70 +#: Model/Nc2ToNc3Frame.php:78 msgid "Frame Migration end." msgstr "" -#: Model/Nc2ToNc3Frame.php:119 -#: Model/Nc2ToNc3Page.php:159 -#: Model/Nc2ToNc3User.php:160 +#: Model/Nc2ToNc3Frame.php:131 +#: Model/Nc2ToNc3Page.php:171 +#: Model/Nc2ToNc3User.php:172 msgid "Many error data. Please check the log. %s" msgstr "" @@ -385,11 +389,11 @@ msgstr "" msgid " LinkFrameSetting data Migration end." msgstr "" -#: Model/Nc2ToNc3Menu.php:59 +#: Model/Nc2ToNc3Menu.php:67 msgid "Menu Migration start." msgstr "" -#: Model/Nc2ToNc3Menu.php:77 +#: Model/Nc2ToNc3Menu.php:85 msgid "Menu Migration end." msgstr "" @@ -433,22 +437,22 @@ msgstr "" msgid " Multidatabase Content Migration end." msgstr "" -#: Model/Nc2ToNc3Page.php:71 +#: Model/Nc2ToNc3Page.php:79 msgid "Page Migration start." msgstr "" -#: Model/Nc2ToNc3Page.php:113 +#: Model/Nc2ToNc3Page.php:121 msgid "Page Migration end." msgstr "" -#: Model/Nc2ToNc3Page.php:294;300 -#: Model/Nc2ToNc3Room.php:252;322 +#: Model/Nc2ToNc3Page.php:315;321 +#: Model/Nc2ToNc3Room.php:267;337 #: Model/Nc2ToNc3UserAttribute.php:348;375;459 #: Model/Behavior/Nc2ToNc3UserAttributeBehavior.php:47;54;79;91;103 msgid "%s is not migration." msgstr "" -#: Model/Nc2ToNc3Page.php:329 +#: Model/Nc2ToNc3Page.php:350 msgid "Permalink of %s is change , because of empty." msgstr "" @@ -660,11 +664,11 @@ msgstr "" msgid " ReservationTimeframe data Migration end." msgstr "" -#: Model/Nc2ToNc3Room.php:84 +#: Model/Nc2ToNc3Room.php:91 msgid "Room Migration start." msgstr "" -#: Model/Nc2ToNc3Room.php:138 +#: Model/Nc2ToNc3Room.php:145 msgid "Room Migration end." msgstr "" @@ -738,11 +742,11 @@ msgstr "" msgid "%s not found ." msgstr "" -#: Model/Nc2ToNc3User.php:114 +#: Model/Nc2ToNc3User.php:121 msgid "User Migration start." msgstr "" -#: Model/Nc2ToNc3User.php:124 +#: Model/Nc2ToNc3User.php:131 msgid "User Migration end." msgstr "" @@ -786,6 +790,22 @@ msgstr "" msgid " Video data Migration end." msgstr "" +#: Model/Behavior/Nc2ToNc3BaseBehavior.php:748 +#: Model/Behavior/Nc2ToNc3FrameBehavior.php:101 +#: Model/Behavior/Nc2ToNc3MenuBehavior.php:403 +#: Model/Behavior/Nc2ToNc3PageBehavior.php:204 +#: Model/Behavior/Nc2ToNc3RoomBehavior.php:307 +msgid "[%s] execution time: %s sec" +msgstr "" + +#: Model/Behavior/Nc2ToNc3BaseBehavior.php:753 +#: Model/Behavior/Nc2ToNc3FrameBehavior.php:106 +#: Model/Behavior/Nc2ToNc3MenuBehavior.php:408 +#: Model/Behavior/Nc2ToNc3PageBehavior.php:209 +#: Model/Behavior/Nc2ToNc3RoomBehavior.php:312 +msgid "[%s] memory: %s MB" +msgstr "" + #: Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php:81 msgid "%s does not migration. Not placed in nc2 room" msgstr "" diff --git a/Model/Behavior/Nc2ToNc3BaseBehavior.php b/Model/Behavior/Nc2ToNc3BaseBehavior.php index 74b7d28..797c0ce 100644 --- a/Model/Behavior/Nc2ToNc3BaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3BaseBehavior.php @@ -66,6 +66,17 @@ public function setup(Model $model, $config = array()) { 'file' => 'Nc2ToNc3.log', ] ); + + // パフォーマンスログ + CakeLog::config( + 'Nc2ToNc3PerformanceFile', + [ + 'engine' => 'FileLog', + 'types' => ['debug'], + 'scopes' => ['Nc2ToNc3Performance'], + 'file' => 'Nc2ToNc3Performance.log', + ] + ); } /** @@ -237,10 +248,12 @@ public function executionTimeStart(Model $model) { * @param string $methodName メソッド名 * @param float $timeStart 計測開始時間(秒) * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() + * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない * @return void */ - public function executionTimeEnd(Model $model, $methodName, $timeStart, $executionFlushTime) { - $this->_executionTimeEnd($methodName, $timeStart, $executionFlushTime); + public function executionTimeEnd(Model $model, $methodName, $timeStart, + $executionFlushTime, $isOutputLog = false) { + $this->_executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog); } /** @@ -717,20 +730,30 @@ protected function _executionTimeStart() { return microtime(true); } -// @codingStandardsIgnoreStart /** * 実行時間の計測終了 * * @param string $methodName メソッド名 * @param float $timeStart 計測開始時間(秒) * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() + * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない * @return void + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) */ - protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime) { - // @codingStandardsIgnoreEnd + protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog = false) { $executionTime = microtime(true) - $timeStart; - //CakeLog::debug('[' . $methodName . '] ' . $executionTime . ' 秒'); - //CakeLog::debug('[' . $methodName . '] ' . "memory: " . memory_get_usage(true)); + + if ($isOutputLog) { + CakeLog::debug( + __d('nc2_to_nc3', '[%s] execution time: %s sec', [$methodName, $executionTime]), + ['Nc2ToNc3Performance'] + ); + $memory = memory_get_usage(true) / (1024 * 1024); + CakeLog::debug( + __d('nc2_to_nc3', '[%s] memory: %s MB', [$methodName, $memory]), + ['Nc2ToNc3Performance'] + ); + } // $User->saveUserをループすると、UserのSaveUserBehaviorのafterSaveで、{$spaceModel}->afterUserSaveを繰り返すことにより // 繰り返す事で使用メモリが増え続ける。 メモリが増えると徐々にsaveの処理速度が遅くなる @@ -738,7 +761,7 @@ protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTim // そのため、実行時間が例えば1.5秒以上かかり処理が遅くなってきたら、ClassRegistryをいったんクリアするよう対応する。 // この現象はバッチで使う移行プラグイン特有のもの。画面では問題ないと思われる。 if ($executionTime >= $executionFlushTime) { - //CakeLog::debug('[' . $methodName . '] ClassRegistry::flush()'); + //CakeLog::debug('[' . $methodName . '] ClassRegistry::flush()', ['Nc2ToNc3Performance']); ClassRegistry::flush(); } } diff --git a/Model/Behavior/Nc2ToNc3UserBehavior.php b/Model/Behavior/Nc2ToNc3UserBehavior.php index f6612a0..2158f58 100644 --- a/Model/Behavior/Nc2ToNc3UserBehavior.php +++ b/Model/Behavior/Nc2ToNc3UserBehavior.php @@ -407,4 +407,17 @@ private function __getNc3PrivateRoomByUserId($nc3UserId) { return $Room->find('first', $query); } +/** + * 実行時間の計測終了 + * + * @param string $methodName メソッド名 + * @param float $timeStart 計測開始時間(秒) + * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() + * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない + * @return void + * @SuppressWarnings(PHPMD.BooleanArgumentFlag) + */ + protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog = false) { + parent::_executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog); + } } diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index e702537..1caf2ca 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -271,6 +271,10 @@ public function migration($data) { if (in_array(substr($migrationModelName, 8), $excludePlugins, true)) { continue; } + // 実行時間の計測開始時間 + /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ + $timeStart = $this->executionTimeStart(); + $migrationModelName = 'Nc2ToNc3.' . $migrationModelName; /* @var $MigrationModel Nc2ToNc3UserAttribute */ @@ -293,7 +297,9 @@ public function migration($data) { // ClassRegistryが移行で各プラグインのモデルのsave系を実行すると、処理が遅くなる & メモリ食うため、 // migrationModelが切り替わるタイミングで、いったん初期化する。 - ClassRegistry::flush(); + //ClassRegistry::flush(); + /* @see Nc2ToNc3BaseBehavior::executionTimeEnd() */ + $this->executionTimeEnd(__METHOD__ . ' ' . $migrationModelName, $timeStart, 0, true); } $this->writeMigrationLog(__d('nc2_to_nc3', 'Migration end.')); diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index 30187dc..ec00fbc 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -154,6 +154,7 @@ private function __saveUserFromNc2WhileDividing() { // NC2ユーザ件数 //$numberOfUsers = 0; + $nc2UserCount = 0; $numberOfUsers = $Nc2User->find('count', $query); $query['limit'] = $limit; @@ -176,6 +177,8 @@ private function __saveUserFromNc2WhileDividing() { return false; } + $nc2UserCount += count($nc2Users); + $this->writeMigrationLog(' Nc2UserCount: ' . $nc2UserCount); $query['offset'] += $limit; } From 8be7479742975c3aaf35233f343345288fd56b7f Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Mon, 15 Apr 2019 00:56:15 +0900 Subject: [PATCH 05/55] =?UTF-8?q?fix:=20room=E7=A7=BB=E8=A1=8C,=20page?= =?UTF-8?q?=E7=A7=BB=E8=A1=8C=E9=80=9F=E5=BA=A6=E6=94=B9=E5=96=84,=20phpdo?= =?UTF-8?q?c,=20phpcs=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Behavior/Nc2ToNc3BaseBehavior.php | 6 +++- Model/Behavior/Nc2ToNc3MenuBehavior.php | 2 +- Model/Behavior/Nc2ToNc3UserBehavior.php | 1 + Model/Nc2ToNc3.php | 10 +++++- Model/Nc2ToNc3Announcement.php | 3 +- Model/Nc2ToNc3AppModel.php | 6 ++++ Model/Nc2ToNc3Bbs.php | 3 +- Model/Nc2ToNc3Blog.php | 5 ++- Model/Nc2ToNc3Calendar.php | 1 + Model/Nc2ToNc3Frame.php | 13 ++++--- Model/Nc2ToNc3Menu.php | 3 +- Model/Nc2ToNc3Multidatabase.php | 47 +++++++++++-------------- Model/Nc2ToNc3Page.php | 23 ++++++++---- Model/Nc2ToNc3Questionnaire.php | 6 ++-- Model/Nc2ToNc3Quiz.php | 5 +-- Model/Nc2ToNc3Registration.php | 13 ++++--- Model/Nc2ToNc3Room.php | 11 +++++- Model/Nc2ToNc3User.php | 7 ---- 18 files changed, 96 insertions(+), 69 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3BaseBehavior.php b/Model/Behavior/Nc2ToNc3BaseBehavior.php index 797c0ce..d31cbbc 100644 --- a/Model/Behavior/Nc2ToNc3BaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3BaseBehavior.php @@ -731,7 +731,11 @@ protected function _executionTimeStart() { } /** - * 実行時間の計測終了 + * 実行時間の計測終了
+ *
+ * Nc2ToNc3Frame, Nc2ToNc3Announcement, Nc2ToNc3Menu, Nc2ToNc3Registration
+ * にざっくり実装した処、実行速度が実装前より遅くなった。
+ * Nc2ToNc3User, Nc2ToNc3Room, Nc2ToNc3Pageは実行速度が早くなった。 * * @param string $methodName メソッド名 * @param float $timeStart 計測開始時間(秒) diff --git a/Model/Behavior/Nc2ToNc3MenuBehavior.php b/Model/Behavior/Nc2ToNc3MenuBehavior.php index e9fcce4..68edd79 100644 --- a/Model/Behavior/Nc2ToNc3MenuBehavior.php +++ b/Model/Behavior/Nc2ToNc3MenuBehavior.php @@ -331,7 +331,7 @@ private function __getLogArgument($nc2MenuDetail) { * Convert to Nc3MenuFrameSetting display_type. * * @param array $nc2MenuDetail Nc2MenuDetail data. - * @return Model converted date. + * @return string nc2 template name. */ private function __convertDisplayType($nc2MenuDetail) { $nc3DisplayType = null; diff --git a/Model/Behavior/Nc2ToNc3UserBehavior.php b/Model/Behavior/Nc2ToNc3UserBehavior.php index 2158f58..47d04bc 100644 --- a/Model/Behavior/Nc2ToNc3UserBehavior.php +++ b/Model/Behavior/Nc2ToNc3UserBehavior.php @@ -419,5 +419,6 @@ private function __getNc3PrivateRoomByUserId($nc3UserId) { */ protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog = false) { parent::_executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog); + //parent::_executionTimeEnd($methodName, $timeStart, $executionFlushTime, true); } } diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 1caf2ca..26a8a15 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -33,6 +33,13 @@ */ class Nc2ToNc3 extends Nc2ToNc3AppModel { +/** + * この実行時間(秒)を越えたらClassRegistry::flush() + * + * @var float + */ + public $executionFlushTime = 0; + /** * The DataSource name for nc2 * @@ -299,7 +306,8 @@ public function migration($data) { // migrationModelが切り替わるタイミングで、いったん初期化する。 //ClassRegistry::flush(); /* @see Nc2ToNc3BaseBehavior::executionTimeEnd() */ - $this->executionTimeEnd(__METHOD__ . ' ' . $migrationModelName, $timeStart, 0, true); + $this->executionTimeEnd(__METHOD__ . ' ' . $migrationModelName, $timeStart, + $this->executionFlushTime, true); } $this->writeMigrationLog(__d('nc2_to_nc3', 'Migration end.')); diff --git a/Model/Nc2ToNc3Announcement.php b/Model/Nc2ToNc3Announcement.php index 92d1b20..1268f56 100644 --- a/Model/Nc2ToNc3Announcement.php +++ b/Model/Nc2ToNc3Announcement.php @@ -73,6 +73,7 @@ public function migrate() { $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); $Topic = ClassRegistry::init('Topics.Topic'); $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); + foreach ($nc2Announcements as $nc2Announcement) { $Announcement->begin(); @@ -134,8 +135,6 @@ public function migrate() { $message = $this->getLogArgument($nc2Announcement) . "\n" . var_export($Announcement->validationErrors, true); $this->writeMigrationLog($message); - - $Announcement->rollback(); continue; } diff --git a/Model/Nc2ToNc3AppModel.php b/Model/Nc2ToNc3AppModel.php index 2d690fc..d198c39 100644 --- a/Model/Nc2ToNc3AppModel.php +++ b/Model/Nc2ToNc3AppModel.php @@ -19,4 +19,10 @@ */ class Nc2ToNc3AppModel extends Model { +/** + * この実行時間(秒)を越えたらClassRegistry::flush() + * + * @var float + */ + public $executionFlushTime = 1.5; } diff --git a/Model/Nc2ToNc3Bbs.php b/Model/Nc2ToNc3Bbs.php index 357c2e6..a77469f 100644 --- a/Model/Nc2ToNc3Bbs.php +++ b/Model/Nc2ToNc3Bbs.php @@ -52,6 +52,7 @@ class Nc2ToNc3Bbs extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Bbs Migration start.')); @@ -98,7 +99,6 @@ public function migrate() { * @return bool True on success * @throws Exception */ - private function __saveNc3BbsFromNc2($nc2Bbses) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Bbs data Migration start.')); @@ -177,7 +177,6 @@ private function __saveNc3BbsFromNc2($nc2Bbses) { $message = $this->getLogArgument($nc2Bbs) . "\n" . var_export($Bbs->validationErrors, true); $this->writeMigrationLog($message); - $Bbs->rollback(); continue; } diff --git a/Model/Nc2ToNc3Blog.php b/Model/Nc2ToNc3Blog.php index 222cffd..55b9990 100644 --- a/Model/Nc2ToNc3Blog.php +++ b/Model/Nc2ToNc3Blog.php @@ -54,6 +54,7 @@ class Nc2ToNc3Blog extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Blog Migration start.')); @@ -157,7 +158,6 @@ private function __saveNc3BlogFromNc2($nc2Journals) { $message = $this->getLogArgument($nc2Journal) . "\n" . var_export($Blog->validationErrors, true); $this->writeMigrationLog($message); - $Blog->rollback(); continue; } @@ -311,7 +311,7 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $nc2CategoryId = $nc2JournalPost['Nc2JournalPost']['category_id']; $data['BlogEntry']['category_id'] = $Nc2ToNc3Category->getNc3CategoryId($nc3BlockId, $nc2CategoryId); - $Block = ClassRegistry::init('Blocks.Block'); + //$Block = ClassRegistry::init('Blocks.Block'); $Blocks = $Block->findById($nc3BlockId, null, null, -1); $nc3RoomId = $Blocks['Block']['room_id']; @@ -345,7 +345,6 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $message = $this->getLogArgument($nc2JournalPost) . "\n" . var_export($BlogEntry->validationErrors, true); $this->writeMigrationLog($message); - $BlogEntry->rollback(); continue; } diff --git a/Model/Nc2ToNc3Calendar.php b/Model/Nc2ToNc3Calendar.php index 223a887..4caf8c3 100644 --- a/Model/Nc2ToNc3Calendar.php +++ b/Model/Nc2ToNc3Calendar.php @@ -63,6 +63,7 @@ class Nc2ToNc3Calendar extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Calendar Migration start.')); diff --git a/Model/Nc2ToNc3Frame.php b/Model/Nc2ToNc3Frame.php index 5c0defb..dba8280 100644 --- a/Model/Nc2ToNc3Frame.php +++ b/Model/Nc2ToNc3Frame.php @@ -102,19 +102,20 @@ private function __saveFrameFromNc2WhileDividing() { 'Nc2Block.row_num DESC', 'Nc2Block.col_num DESC', ], - 'limit' => $limit, + //'limit' => $limit, 'offset' => 0, ]; - $numberOfBlocks = 0; - //$numberOfUsers = $Nc2Block->find('count', $query); - //$query['limit'] = $limit; + //$numberOfBlocks = 0; + $nc2BlockCount = 0; + $numberOfBlocks = $Nc2Block->find('count', $query); + $query['limit'] = $limit; while ($nc2Blocks = $Nc2Block->find('all', $query)) { if (!$this->__saveFrameFromNc2($nc2Blocks)) { return false; } - $numberOfBlocks += count($nc2Blocks); + //$numberOfBlocks += count($nc2Blocks); $errorRate = round($this->__numberOfValidationError / $numberOfBlocks); // 5割エラー発生で止める if ($errorRate >= 0.5) { @@ -128,6 +129,8 @@ private function __saveFrameFromNc2WhileDividing() { return false; } + $nc2BlockCount += count($nc2Blocks); + $this->writeMigrationLog(' Nc2BlockCount: ' . $nc2BlockCount); $query['offset'] += $limit; } diff --git a/Model/Nc2ToNc3Menu.php b/Model/Nc2ToNc3Menu.php index 887bc8a..d6f1866 100644 --- a/Model/Nc2ToNc3Menu.php +++ b/Model/Nc2ToNc3Menu.php @@ -54,6 +54,7 @@ class Nc2ToNc3Menu extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Menu Migration start.')); @@ -128,8 +129,6 @@ private function __saveMenuFrameSettingFromNc2($nc2BlockId) { $message = $this->getLogArgument($nc2MenuDetail) . "\n" . var_export($MenuFrameSetting->validationErrors, true); $this->writeMigrationLog($message); - - $MenuFrameSetting->rollback(); return true; // 処理を継続するためtrueを返す } diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 0eeeb40..6692d21 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -54,6 +54,7 @@ class Nc2ToNc3Multidatabase extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Multidatabase Migration start.')); @@ -65,19 +66,19 @@ public function migrate() { return false; } - /* @var $Nc2MultidatabaseBlock AppModel */ - $Nc2MultidatabaseBlock = $this->getNc2Model('multidatabase_block'); - $nc2MultidatabaseBlocks = $Nc2MultidatabaseBlock->find('all'); - if (!$this->__saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks)) { + /* @var $Nc2MultidbBlock AppModel */ + $Nc2MultidbBlock = $this->getNc2Model('multidatabase_block'); + $nc2MultidbBlocks = $Nc2MultidbBlock->find('all'); + if (!$this->__saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks)) { return false; } - $Nc2MultidatabaseMetadata = $this->getNc2Model('multidatabase_metadata'); + $Nc2MultidbMetadata = $this->getNc2Model('multidatabase_metadata'); // col_noをうめるためにmultidatabase_id - $nc2MultidatabaseMetadatas = $Nc2MultidatabaseMetadata->find('all', [ + $nc2MultidbMetadatas = $Nc2MultidbMetadata->find('all', [ 'order' => 'multidatabase_id ASC' ]); - if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidatabaseMetadatas)) { + if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidbMetadatas)) { return false; } @@ -146,7 +147,6 @@ public function migrate() { * @return bool True on success * @throws Exception */ - private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase data Migration start.')); @@ -200,7 +200,6 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($nc2Multidatabase) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); - $Multidatabase->rollback(); continue; } @@ -228,7 +227,6 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($data) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); - $Multidatabase->rollback(); continue; } @@ -251,7 +249,6 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($data) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); - $Multidatabase->rollback(); continue; } @@ -290,21 +287,21 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { /** * Save BlogFrameSetting from Nc2. * - * @param array $nc2MultidatabaseBlocks Nc2ournalBlock data. + * @param array $nc2MultidbBlocks Nc2MultidatabaseBlock data. * @return bool True on success * @throws Exception */ - private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks) { + private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks) { $this->writeMigrationLog(__d('nc2_to_nc3', ' MultidatabaseFrameSetting data Migration start.')); /* @var $MultidbFrameSetting BlogFrameSetting */ /* @var $Frame Frame */ $MultidbFrameSetting = ClassRegistry::init('Multidatabases.MultidatabaseFrameSetting'); $Frame = ClassRegistry::init('Frames.Frame'); - foreach ($nc2MultidatabaseBlocks as $nc2MultidatabaseBlock) { + foreach ($nc2MultidbBlocks as $nc2MultidbBlock) { $MultidbFrameSetting->begin(); try { - $data = $this->generateNc3MultidatabaseFrameSettingData($nc2MultidatabaseBlock); + $data = $this->generateNc3MultidatabaseFrameSettingData($nc2MultidbBlock); if (!$data) { $MultidbFrameSetting->rollback(); continue; @@ -315,7 +312,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBloc // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。 // var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html - $message = $this->getLogArgument($nc2MultidatabaseBlock) . "\n" . + $message = $this->getLogArgument($nc2MultidbBlock) . "\n" . var_export($MultidbFrameSetting->validationErrors, true); $this->writeMigrationLog($message); @@ -327,7 +324,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBloc // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。 // var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html - $message = $this->getLogArgument($nc2MultidatabaseBlock) . "\n" . + $message = $this->getLogArgument($nc2MultidbBlock) . "\n" . var_export($MultidbFrameSetting->validationErrors, true); $this->writeMigrationLog($message); @@ -335,7 +332,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBloc continue; } - $nc2BlockId = $nc2MultidatabaseBlock['Nc2MultidatabaseBlock']['block_id']; + $nc2BlockId = $nc2MultidbBlock['Nc2MultidatabaseBlock']['block_id']; $idMap = [ $nc2BlockId => $MultidbFrameSetting->id ]; @@ -443,23 +440,20 @@ private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase Content Migration start.')); - /* @var $DbContent BlogEntry */ + /* @var $DbContent MultidatabaseContent */ /* @var $Nc2ToNc3Category Nc2ToNc3Category */ $DbContent = ClassRegistry::init('Multidatabases.MultidatabaseContent'); Current::write('Plugin.key', 'multidatabases'); - //$Nc2Journal = $this->getNc2Model('journal'); - $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); - $Block = ClassRegistry::init('Blocks.Block'); + //$BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); + //$Block = ClassRegistry::init('Blocks.Block'); //$Topic = ClassRegistry::init('Topics.Topic'); - - $Nc2MultidbFile = $this->getNc2Model('multidatabase_file'); - + //$Nc2MultidbFile = $this->getNc2Model('multidatabase_file'); $AuthorizationKey = ClassRegistry::init('AuthorizationKeys.AuthorizationKey'); $UploadFile = ClassRegistry::init('Files.UploadFile'); - $Like = ClassRegistry::init('Likes.Like'); + foreach ($nc2MultidbContents as $nc2MultidbContent) { $DbContent->begin(); //$DbContent->Behaviors->disable('Attachment'); @@ -509,7 +503,6 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $message = $this->getLogArgument($nc2MultidbContent) . "\n" . var_export($DbContent->validationErrors, true); $this->writeMigrationLog($message); - $DbContent->rollback(); continue; } diff --git a/Model/Nc2ToNc3Page.php b/Model/Nc2ToNc3Page.php index dbafd55..07f43ed 100644 --- a/Model/Nc2ToNc3Page.php +++ b/Model/Nc2ToNc3Page.php @@ -66,6 +66,7 @@ class Nc2ToNc3Page extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Page Migration start.')); @@ -136,7 +137,7 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { 'order' => [ 'Nc2Page.parent_id', ], - 'limit' => $limit, + //'limit' => $limit, 'offset' => 0, ]; @@ -144,16 +145,17 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { // @see https://github.com/NetCommons3/M17n/blob/3.1.0/Model/Behavior/M17nBehavior.php#L228 $this->changeNc3CurrentLanguage($nc2LangDirName); - $numberOfPages = 0; - //$numberOfUsers = $Nc2Page->find('count', $query); - //$query['limit'] = $limit; + //$numberOfPages = 0; + $nc2PageCount = 0; + $numberOfPages = $Nc2Page->find('count', $query); + $query['limit'] = $limit; while ($nc2Pages = $Nc2Page->find('all', $query)) { if (!$this->__savePageFromNc2($nc2Pages)) { $this->restoreNc3CurrentLanguage(); return false; } - $numberOfPages += count($nc2Pages); + //$numberOfPages += count($nc2Pages); $errorRate = round($this->__numberOfValidationError / $numberOfPages); // 5割エラー発生で止める。英語ページは少ない可能性があるので、最低件数も判断する if ($errorRate >= 0.5 && $numberOfPages > 100) { @@ -169,6 +171,8 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { return false; } + $nc2PageCount += count($nc2Pages); + $this->writeMigrationLog(' Nc2PagesCount: ' . $nc2PageCount); $query['offset'] += $limit; } @@ -190,6 +194,10 @@ private function __savePageFromNc2($nc2Pages) { $this->saveExistingMap($nc2Pages); foreach ($nc2Pages as $nc2Page) { + // 実行時間の計測開始時間 + /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ + $timeStart = $this->executionTimeStart(); + $Page->begin(); try { /* @@ -201,6 +209,7 @@ private function __savePageFromNc2($nc2Pages) { $data = $this->__generateNc3Data($nc2Page); if (!$data) { $Page->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -219,13 +228,14 @@ private function __savePageFromNc2($nc2Pages) { $this->__numberOfValidationError++; - $Page->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2PageId = $nc2Page['Nc2Page']['page_id']; if ($this->getMap($nc2PageId)) { $Page->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -235,6 +245,7 @@ private function __savePageFromNc2($nc2Pages) { $this->saveMap('Page', $idMap); $Page->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index ff2b8e0..31f2bff 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -65,6 +65,7 @@ class Nc2ToNc3Questionnaire extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Questionnaire Migration start.')); @@ -117,6 +118,7 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { $Questionnaire = ClassRegistry::init('Questionnaires.Questionnaire'); $Nc2QBlock = $this->getNc2Model('questionnaire_block'); $Frame = ClassRegistry::init('Frames.Frame'); + foreach ($nc2Questionnaires as $nc2Questionnaire) { $Questionnaire->begin(); try { @@ -159,8 +161,6 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { $message = $this->getLogArgument($nc2Questionnaire) . "\n" . var_export($Questionnaire->validationErrors, true); $this->writeMigrationLog($message); - - $Questionnaire->rollback(); continue; } @@ -204,6 +204,7 @@ private function __saveQuestionnaireFrameSettingFromNc2($nc2QBlocks) { $QFrameSetting = ClassRegistry::init('Questionnaires.QuestionnaireFrameSetting'); $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); $Block = ClassRegistry::init('Blocks.Block'); + foreach ($nc2QBlocks as $nc2QBlock) { $QFrameSetting->begin(); try { @@ -286,6 +287,7 @@ private function __saveQuestionnaireAnswerSummaryFromNc2($nc2QSummaries) { $QAnswerSummary = ClassRegistry::init('Questionnaires.QuestionnaireAnswerSummary'); $Questionnaire = ClassRegistry::init('Questionnaires.Questionnaire'); $nc2PreviousQId = null; + foreach ($nc2QSummaries as $nc2QSummary) { $QAnswerSummary->begin(); try { diff --git a/Model/Nc2ToNc3Quiz.php b/Model/Nc2ToNc3Quiz.php index 44f7c4e..b6f3d26 100644 --- a/Model/Nc2ToNc3Quiz.php +++ b/Model/Nc2ToNc3Quiz.php @@ -65,6 +65,7 @@ class Nc2ToNc3Quiz extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Quiz Migration start.')); @@ -159,8 +160,6 @@ private function __saveQuizFromNc2($nc2Quizzes) { $message = $this->getLogArgument($nc2Quiz) . "\n" . var_export($Quiz->validationErrors, true); $this->writeMigrationLog($message); - - $Quiz->rollback(); continue; } @@ -209,6 +208,7 @@ private function __saveQuizFrameSettingFromNc2($nc2QBlocks) { $QFrameSetting = ClassRegistry::init('Quizzes.QuizFrameSetting'); $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); $Block = ClassRegistry::init('Blocks.Block'); + foreach ($nc2QBlocks as $nc2QBlock) { $QFrameSetting->begin(); try { @@ -290,6 +290,7 @@ private function __saveQuizAnswerSummaryFromNc2($nc2QSummaries) { /* @var $Quiz Quiz */ $QAnswerSummary = ClassRegistry::init('Quizzes.QuizAnswerSummary'); $Quiz = ClassRegistry::init('Quizzes.Quiz'); + $nc2PreviousQId = null; foreach ($nc2QSummaries as $nc2QSummary) { $QAnswerSummary->begin(); diff --git a/Model/Nc2ToNc3Registration.php b/Model/Nc2ToNc3Registration.php index 221344f..2ba8b2a 100644 --- a/Model/Nc2ToNc3Registration.php +++ b/Model/Nc2ToNc3Registration.php @@ -58,6 +58,7 @@ class Nc2ToNc3Registration extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Registration Migration start.')); @@ -158,8 +159,6 @@ private function __saveRegistrationFromNc2($nc2Registrations) { $message = $this->getLogArgument($nc2Registration) . "\n" . var_export($Registration->validationErrors, true); $this->writeMigrationLog($message); - - $Registration->rollback(); continue; } @@ -274,7 +273,7 @@ private function __saveRegistrationDataFromNc2($nc2RegistrationData) { * @throws Exception */ private function __saveRegistrationAnswerFromNc2($nc2ItemData, $nc3Registration, $nc3Summary) { - $this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration start.')); + //$this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration start.')); /* @var $RegistrationAnswer RegistrationAnswer */ $RegistrationAnswer = ClassRegistry::init('Registrations.RegistrationAnswer'); @@ -301,7 +300,7 @@ private function __saveRegistrationAnswerFromNc2($nc2ItemData, $nc3Registration, throw $ex; } - $this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration end.')); + //$this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration end.')); return true; } @@ -366,10 +365,10 @@ private function __saveFrameFromNc2($nc2RBlocks) { // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($nc2RBlocks) . "\n" . var_export($Frame->validationErrors, true); - $this->writeMigrationLog($message); + $this->writeMigrationLog($message); - $Frame->rollback(); - continue; + $Frame->rollback(); + continue; } $idMap = [ diff --git a/Model/Nc2ToNc3Room.php b/Model/Nc2ToNc3Room.php index 83b5b0c..f9ea4ae 100644 --- a/Model/Nc2ToNc3Room.php +++ b/Model/Nc2ToNc3Room.php @@ -79,6 +79,7 @@ class Nc2ToNc3Room extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. + * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Room Migration start.')); @@ -168,6 +169,10 @@ private function __saveRoomFromNc2($nc2LangDirName) { $RolesRoomsUser = ClassRegistry::init('Rooms.RolesRoomsUser'); foreach ($nc2Pages as $nc2Page) { + // 実行時間の計測開始時間 + /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ + $timeStart = $this->executionTimeStart(); + /* if (!$this->isMigrationRow($nc2User)) { continue; @@ -178,6 +183,7 @@ private function __saveRoomFromNc2($nc2LangDirName) { $data = $this->__generateNc3Data($nc2Page); if (!$data) { $Room->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -191,7 +197,7 @@ private function __saveRoomFromNc2($nc2LangDirName) { var_export($Room->validationErrors, true); $this->writeMigrationLog($message); - $Room->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2PageId = $nc2Page['Nc2Page']['page_id']; @@ -205,12 +211,14 @@ private function __saveRoomFromNc2($nc2LangDirName) { if (!$RolesRoomsUser->saveRolesRoomsUsersForRooms($data)) { // RolesRoomsUser::saveRolesRoomsUsersForRoomsではreturn falseなし $Room->rollback(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2RoomId = $nc2Page['Nc2Page']['room_id']; if ($this->getMap($nc2RoomId)) { $Room->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -220,6 +228,7 @@ private function __saveRoomFromNc2($nc2LangDirName) { $this->saveMap('Room', $idMap); $Room->commit(); + $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index ec00fbc..06cee2d 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -45,13 +45,6 @@ */ class Nc2ToNc3User extends Nc2ToNc3AppModel { -/** - * この実行時間(秒)を越えたらClassRegistry::flush() - * - * @var float - */ - public $executionFlushTime = 1.5; - /** * Custom database table name, or null/false if no table association is desired. * From 5fb97578d38d2d23391bdd506f61f6de7cac0485 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Tue, 16 Apr 2019 19:04:27 +0900 Subject: [PATCH 06/55] =?UTF-8?q?fix:=20Nc2ToNc3=E3=83=A2=E3=83=87?= =?UTF-8?q?=E3=83=AB=E3=81=A7=E3=81=AFClassRegistry::flush=E3=81=95?= =?UTF-8?q?=E3=81=9B=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 実行したら、お知らせ等の移行でupload_idなしのエラーが出たため * [エラー内容] * Nc2Upload upload_id:999 not found . - announcement/9999.png : Nc2ToNc3Upload on line 88 --- Model/Nc2ToNc3.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 26a8a15..7b9124e 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -35,10 +35,13 @@ class Nc2ToNc3 extends Nc2ToNc3AppModel { /** * この実行時間(秒)を越えたらClassRegistry::flush() + * 実行したら、お知らせ等の移行でupload_idなしのエラーが出たため、ClassRegistry::flushさせない数字にする。 + * [エラー内容] + * Nc2Upload upload_id:999 not found . - announcement/9999.png : Nc2ToNc3Upload on line 88 * * @var float */ - public $executionFlushTime = 0; + public $executionFlushTime = 99999999; /** * The DataSource name for nc2 From bb7087bae4ab874a332d692fc837d0d8a75dabea Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Tue, 16 Apr 2019 19:11:02 +0900 Subject: [PATCH 07/55] =?UTF-8?q?fix:=20Questionnaire=E3=81=AE=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E5=87=BA=E5=8A=9B=E8=A6=8B=E7=9B=B4=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Questionnaire.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index 31f2bff..353e59c 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -371,7 +371,7 @@ private function __saveQuestionnaireAnswerSummaryFromNc2($nc2QSummaries) { * @throws Exception */ private function __saveQuestionnaireAnswerFromNc2($nc2QSummary, $nc3QAnswerSummary, $nc3Questionnaire, $questionMap) { - $this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration start.')); + //$this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration start.')); /* @var $Nc2QAnswer AppModel */ $Nc2QAnswer = $this->getNc2Model('questionnaire_answer'); @@ -410,7 +410,7 @@ private function __saveQuestionnaireAnswerFromNc2($nc2QSummary, $nc3QAnswerSumma throw $ex; } - $this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration end.')); + //$this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration end.')); return true; } From 03e991700b5eae2d22ccd6e654f6fd3f203acbca Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Fri, 19 Apr 2019 23:04:49 +0900 Subject: [PATCH 08/55] =?UTF-8?q?Revert=20"fix:=20Nc2ToNc3=E3=83=A2?= =?UTF-8?q?=E3=83=87=E3=83=AB=E3=81=A7=E3=81=AFClassRegistry::flush?= =?UTF-8?q?=E3=81=95=E3=81=9B=E3=81=AA=E3=81=84"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3.php | 5 +---- Model/Nc2ToNc3Questionnaire.php | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 7b9124e..26a8a15 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -35,13 +35,10 @@ class Nc2ToNc3 extends Nc2ToNc3AppModel { /** * この実行時間(秒)を越えたらClassRegistry::flush() - * 実行したら、お知らせ等の移行でupload_idなしのエラーが出たため、ClassRegistry::flushさせない数字にする。 - * [エラー内容] - * Nc2Upload upload_id:999 not found . - announcement/9999.png : Nc2ToNc3Upload on line 88 * * @var float */ - public $executionFlushTime = 99999999; + public $executionFlushTime = 0; /** * The DataSource name for nc2 diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index 353e59c..31f2bff 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -371,7 +371,7 @@ private function __saveQuestionnaireAnswerSummaryFromNc2($nc2QSummaries) { * @throws Exception */ private function __saveQuestionnaireAnswerFromNc2($nc2QSummary, $nc3QAnswerSummary, $nc3Questionnaire, $questionMap) { - //$this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration start.')); + $this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration start.')); /* @var $Nc2QAnswer AppModel */ $Nc2QAnswer = $this->getNc2Model('questionnaire_answer'); @@ -410,7 +410,7 @@ private function __saveQuestionnaireAnswerFromNc2($nc2QSummary, $nc3QAnswerSumma throw $ex; } - //$this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration end.')); + $this->writeMigrationLog(__d('nc2_to_nc3', ' QuestionnaireAnswer data Migration end.')); return true; } From 33585bcc889d6f0a0fd76f75f4126f5e71f6ef50 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Fri, 19 Apr 2019 23:07:23 +0900 Subject: [PATCH 09/55] =?UTF-8?q?Revert=20"fix:=20=E7=A7=BB=E8=A1=8C?= =?UTF-8?q?=E3=81=AEUser=E3=81=AE=E3=83=A1=E3=83=A2=E3=83=AA=E3=83=AA?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E6=94=B9=E5=96=84=E3=81=AB=E3=82=88=E3=82=8B?= =?UTF-8?q?=E3=83=91=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E6=94=B9=E5=96=84"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Locale/nc2_to_nc3.pot | 807 +----------------------- Model/Behavior/Nc2ToNc3BaseBehavior.php | 85 --- Model/Behavior/Nc2ToNc3MenuBehavior.php | 2 +- Model/Behavior/Nc2ToNc3UserBehavior.php | 14 - Model/Nc2ToNc3.php | 22 - Model/Nc2ToNc3Announcement.php | 3 +- Model/Nc2ToNc3AppModel.php | 6 - Model/Nc2ToNc3Bbs.php | 3 +- Model/Nc2ToNc3Blog.php | 5 +- Model/Nc2ToNc3Cabinet.php | 2 +- Model/Nc2ToNc3Calendar.php | 1 - Model/Nc2ToNc3Frame.php | 17 +- Model/Nc2ToNc3Menu.php | 3 +- Model/Nc2ToNc3Multidatabase.php | 47 +- Model/Nc2ToNc3Page.php | 26 +- Model/Nc2ToNc3Questionnaire.php | 6 +- Model/Nc2ToNc3Quiz.php | 5 +- Model/Nc2ToNc3Registration.php | 13 +- Model/Nc2ToNc3Room.php | 11 +- Model/Nc2ToNc3User.php | 31 +- 20 files changed, 81 insertions(+), 1028 deletions(-) diff --git a/Locale/nc2_to_nc3.pot b/Locale/nc2_to_nc3.pot index e985eb3..105d3b4 100644 --- a/Locale/nc2_to_nc3.pot +++ b/Locale/nc2_to_nc3.pot @@ -13,812 +13,39 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: Console/Command/Nc2ToNc3Shell.php:36 -msgid "Enter database name of nc2?" +#: Console/Command/Nc2ToNc3Shell.php:32 +msgid "Nc2 version is %s. It must be %s" msgstr "" -#: Console/Command/Nc2ToNc3Shell.php:41 -msgid "Enter table prefix name of nc2?" +#: View/Nc2ToNc3/migration.ctp:14 +msgid "Input the database connection information of NetCommons2." msgstr "" -#: Console/Command/Nc2ToNc3Shell.php:69 -msgid "Enter upload path of nc2?" +#: View/Nc2ToNc3/migration.ctp:23 +msgid "Datasource" msgstr "" -#: Console/Command/Nc2ToNc3Shell.php:77 -msgid "Enter url of nc2 for converting link in WYSIWYG content?(ex.http://example.com/nc2)" +#: View/Nc2ToNc3/migration.ctp:30 +msgid "Host" msgstr "" -#: Console/Command/Nc2ToNc3Shell.php:85 -msgid "Enter sub directory name?(ex.\"/dirname1/dirname2\") If root is top, enter \"/\"." +#: View/Nc2ToNc3/migration.ctp:31 +msgid "Port" msgstr "" -#: Model/Nc2ToNc3.php:84 +#: View/Nc2ToNc3/migration.ctp:32 msgid "Database" msgstr "" -#: Model/Nc2ToNc3.php:103 -msgid "Upload file path" +#: View/Nc2ToNc3/migration.ctp:33 +msgid "Prefix" msgstr "" -#: Model/Nc2ToNc3.php:111 -msgid "The above Upload file path does not exist." +#: View/Nc2ToNc3/migration.ctp:34 +msgid "Login" msgstr "" -#: Model/Nc2ToNc3.php:119 -msgid "Base url" -msgstr "" - -#: Model/Nc2ToNc3.php:120 -msgid "Input URL of NetCommons2 for converting link in WYSIWYG content." -msgstr "" - -#: Model/Nc2ToNc3.php:179 -msgid "NetCommons2 version is not %s" -msgstr "" - -#: Model/Nc2ToNc3.php:188 -msgid "NetCommons2 table is not found." -msgstr "" - -#: Model/Nc2ToNc3.php:237 -msgid "Migration start." -msgstr "" - -#: Model/Nc2ToNc3.php:305 -msgid "Migration end." -msgstr "" - -#: Model/Nc2ToNc3AccessCounter.php:56 -msgid "AccessCounter Migration start." -msgstr "" - -#: Model/Nc2ToNc3AccessCounter.php:65 -msgid "AccessCounter Migration end." -msgstr "" - -#: Model/Nc2ToNc3AccessCounter.php:77 -msgid " AccessCounter data Migration start." -msgstr "" - -#: Model/Nc2ToNc3AccessCounter.php:168 -msgid " AccessCounter data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Announcement.php:60 -msgid "Announcement Migration start." -msgstr "" - -#: Model/Nc2ToNc3Announcement.php:155 -msgid "Announcement Migration end." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:57 -msgid "Bbs Migration start." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:90 -msgid "Bbs Migration end." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:103 -msgid " Bbs data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:140 -#: Model/Nc2ToNc3Link.php:157 -#: Model/Nc2ToNc3PhotoAlbum.php:362 -#: Model/Behavior/Nc2ToNc3TopicBehavior.php:147 -msgid "%s No room ID corresponding to nc3" -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:204 -msgid " Bbs data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:217 -msgid " Bbs Article data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:303 -msgid " Bbs Article data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:315 -msgid " BbsFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Bbs.php:377 -msgid " BbsFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:59 -msgid "Blog Migration start." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:95 -msgid "Blog Migration end." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:108 -msgid " Blog data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:195 -msgid " Blog data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:207 -msgid " BlogFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:269 -msgid " BlogFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:282 -msgid " Blog Entry data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:373 -msgid " Blog Entry data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:385 -#: Model/Nc2ToNc3Multidatabase.php:590 -msgid " Content Comment data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Blog.php:454 -#: Model/Nc2ToNc3Multidatabase.php:659 -msgid " Content Comment Migration end." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:54 -msgid "Cabinet Migration start." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:84 -msgid "Cabinet Migration end." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:97 -msgid " Cabinet data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:119;296 -#: Model/Nc2ToNc3Calendar.php:274 -#: Model/Nc2ToNc3Faq.php:133;141 -#: Model/Nc2ToNc3Frame.php:269;278 -#: Model/Nc2ToNc3Iframe.php:104 -#: Model/Nc2ToNc3Link.php:340 -#: Model/Nc2ToNc3PhotoAlbum.php:125 -#: Model/Nc2ToNc3Questionnaire.php:132;140;219 -#: Model/Nc2ToNc3Quiz.php:132;140;224 -#: Model/Nc2ToNc3Registration.php:118;125;217;333 -#: Model/Nc2ToNc3Reservation.php:882 -#: Model/Nc2ToNc3Search.php:97 -#: Model/Nc2ToNc3Task.php:121;302 -#: Model/Behavior/Nc2ToNc3BbsBehavior.php:291 -#: Model/Behavior/Nc2ToNc3BlogBehavior.php:70;168 -#: Model/Behavior/Nc2ToNc3CabinetBehavior.php:57;169 -#: Model/Behavior/Nc2ToNc3CalendarBehavior.php:68;76;172;276 -#: Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php:58 -#: Model/Behavior/Nc2ToNc3FaqBehavior.php:195 -#: Model/Behavior/Nc2ToNc3MenuBehavior.php:49;116;357 -#: Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php:70;393 -#: Model/Behavior/Nc2ToNc3QuestionnaireBehavior.php:161;203;530;553;561 -#: Model/Behavior/Nc2ToNc3QuizBehavior.php:148;190;536;559;567 -#: Model/Behavior/Nc2ToNc3RegistrationBehavior.php:101;194;487;510;518 -#: Model/Behavior/Nc2ToNc3TopicBehavior.php:54 -#: Model/Behavior/Nc2ToNc3VideoBehavior.php:73 -msgid "%s does not migration." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:180 -msgid " Cabinet data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:193 -msgid " Cabinet file Migration start." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:268 -msgid " Cabinet file Migration end." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:280 -#: Model/Nc2ToNc3Registration.php:317 -#: Model/Nc2ToNc3Task.php:286 -msgid " Frame data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Cabinet.php:351 -#: Model/Nc2ToNc3Registration.php:391 -#: Model/Nc2ToNc3Task.php:357 -msgid " Frame data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:68 -msgid "Calendar Migration start." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:109 -msgid "Calendar Migration end." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:121 -msgid " CalendarPermission data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:162 -msgid " CalendarPermission data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:175 -msgid " CalendarFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:216 -msgid " CalendarFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:229 -msgid " CalendarEvent data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Calendar.php:319 -msgid " CalendarEvent data Migration end." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:54 -msgid "CircularNotice Migration start." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:60 -msgid "CircularNotice is not installed." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:79 -msgid "CircularNotice Migration end." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:92 -msgid " CircularNoticeFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:185 -msgid " CircularNoticeFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:198 -msgid " CircularNoticeContent data Migration start." -msgstr "" - -#: Model/Nc2ToNc3CircularNotice.php:280 -msgid " CircularNoticeContent data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:63 -msgid "Faq Migration start." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:69 -msgid "Faq is not installed." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:98 -msgid "Faq Migration end." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:111 -msgid " Faq data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:205 -msgid " Faq data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:218 -msgid " FaqQuestion data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:286 -msgid " FaqQuestion data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:299 -msgid " FaqFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Faq.php:353 -msgid " FaqFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Frame.php:68 -msgid "Frame Migration start." -msgstr "" - -#: Model/Nc2ToNc3Frame.php:78 -msgid "Frame Migration end." -msgstr "" - -#: Model/Nc2ToNc3Frame.php:131 -#: Model/Nc2ToNc3Page.php:171 -#: Model/Nc2ToNc3User.php:172 -msgid "Many error data. Please check the log. %s" -msgstr "" - -#: Model/Nc2ToNc3Iframe.php:60 -msgid "Iframe Migration start." -msgstr "" - -#: Model/Nc2ToNc3Iframe.php:69 -msgid "Iframe Migration end." -msgstr "" - -#: Model/Nc2ToNc3Iframe.php:82 -msgid " Iframe data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Iframe.php:166 -msgid " Iframe data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Link.php:66 -msgid "Link Migration start." -msgstr "" - -#: Model/Nc2ToNc3Link.php:96 -msgid "Link Migration end." -msgstr "" - -#: Model/Nc2ToNc3Link.php:109;242 -msgid " Link data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Link.php:229;314 -msgid " Link data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Link.php:327 -msgid " LinkFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Link.php:391 -msgid " LinkFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Menu.php:67 -msgid "Menu Migration start." -msgstr "" - -#: Model/Nc2ToNc3Menu.php:85 -msgid "Menu Migration end." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:59 -msgid "Multidatabase Migration start." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:138 -msgid "Multidatabase Migration end." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:151 -msgid " Multidatabase data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:286 -msgid " Blog Multidatabase Migration end." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:298 -msgid " MultidatabaseFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:360 -msgid " MultidatabaseFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:373 -msgid " MultidatabaseMetadata Migration start." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:431 -msgid " MultidatabaseMetadata Migration end." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:444 -msgid " Multidatabase Content Migration start." -msgstr "" - -#: Model/Nc2ToNc3Multidatabase.php:578 -msgid " Multidatabase Content Migration end." -msgstr "" - -#: Model/Nc2ToNc3Page.php:79 -msgid "Page Migration start." -msgstr "" - -#: Model/Nc2ToNc3Page.php:121 -msgid "Page Migration end." -msgstr "" - -#: Model/Nc2ToNc3Page.php:315;321 -#: Model/Nc2ToNc3Room.php:267;337 -#: Model/Nc2ToNc3UserAttribute.php:348;375;459 -#: Model/Behavior/Nc2ToNc3UserAttributeBehavior.php:47;54;79;91;103 -msgid "%s is not migration." -msgstr "" - -#: Model/Nc2ToNc3Page.php:350 -msgid "Permalink of %s is change , because of empty." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:69 -msgid "PhotoAlbum Migration start." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:90 -msgid "PhotoAlbum Migration end." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:103 -msgid " PhotoAlbumFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:180 -msgid " PhotoAlbumFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:197 -msgid " PhotoAlbum data Migration start." -msgstr "" - -#: Model/Nc2ToNc3PhotoAlbum.php:339 -msgid " PhotoAlbum data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:70 -msgid "Questionnaire Migration start." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:100 -msgid "Questionnaire Migration end." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:112 -msgid " Questionnaire data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:186 -msgid " Questionnaire data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:199 -msgid " QuestionnaireFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:269 -msgid " QuestionnaireFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:282 -msgid " QuestionnaireAnswerSummary data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:356 -msgid " QuestionnaireAnswerSummary data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:372 -msgid " QuestionnaireAnswer data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Questionnaire.php:411 -msgid " QuestionnaireAnswer data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:70 -msgid "Quiz Migration start." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:100 -msgid "Quiz Migration end." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:112 -msgid " Quiz data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:191 -msgid " Quiz data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:204 -msgid " QuizFrameSetting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:274 -msgid " QuizFrameSetting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:287 -msgid " QuizAnswerSummary data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:361 -msgid " QuizAnswerSummary data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:377 -msgid " QuizAnswer data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Quiz.php:416 -msgid " QuizAnswer data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:63 -msgid "Registration Migration start." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:85 -msgid "Registration Migration end." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:98 -msgid " Registration data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:185 -msgid " Registration data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:198 -msgid " RegistrationData data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:262 -msgid " RegistrationAnswerSummary data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:277 -msgid " RegistrationAnswer data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Registration.php:304 -msgid " RegistrationAnswer data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:59 -msgid "Reservation Migration start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:108 -msgid "Reservation Reservation start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:114 -msgid "Reservation Reservation is exist." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:155 -msgid "Reservation Reservation end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:196 -msgid "Reservation Location start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:299 -msgid "Reservation Location end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:366 -msgid "Reservation LocationsRoom start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:409 -msgid "Reservation LocationsRoom end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:471 -msgid "Reservation LocationReservable start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:503 -msgid "Reservation LocationReservable end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:514 -msgid "Reservation Rrule start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:556 -msgid "Reservation Rrule end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:632 -msgid "Reservation Event start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:674 -msgid "Reservation Event end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:775 -msgid "Reservation FrameSetting start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:783 -msgid "Reservation FrameSetting end." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:954 -msgid " Reservation Timeframe Migration start." -msgstr "" - -#: Model/Nc2ToNc3Reservation.php:1002 -msgid " ReservationTimeframe data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Room.php:91 -msgid "Room Migration start." -msgstr "" - -#: Model/Nc2ToNc3Room.php:145 -msgid "Room Migration end." -msgstr "" - -#: Model/Nc2ToNc3RssReader.php:61 -msgid "RssReader Migration start." -msgstr "" - -#: Model/Nc2ToNc3RssReader.php:70 -msgid "RssReader Migration end." -msgstr "" - -#: Model/Nc2ToNc3RssReader.php:83 -msgid " RssReader data Migration start." -msgstr "" - -#: Model/Nc2ToNc3RssReader.php:161 -msgid " RssReader data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Search.php:61 -msgid "Search Migration start." -msgstr "" - -#: Model/Nc2ToNc3Search.php:70 -msgid "Search Migration end." -msgstr "" - -#: Model/Nc2ToNc3Search.php:83 -msgid " Search data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Search.php:146 -msgid " Search data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Task.php:58 -msgid "Task Migration start." -msgstr "" - -#: Model/Nc2ToNc3Task.php:85 -msgid "Task Migration end." -msgstr "" - -#: Model/Nc2ToNc3Task.php:98 -msgid " Task data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Task.php:193 -msgid " Task data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Task.php:206 -msgid " TaskContent data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Task.php:273 -msgid " TaskContent data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Topic.php:59 -msgid "Topic Migration start." -msgstr "" - -#: Model/Nc2ToNc3Topic.php:68 -msgid "Topic Migration end." -msgstr "" - -#: Model/Nc2ToNc3Upload.php:67;80 -#: Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php:258 -#: Model/Behavior/Nc2ToNc3WysiwygBehavior.php:169 -msgid "%s not found ." -msgstr "" - -#: Model/Nc2ToNc3User.php:121 -msgid "User Migration start." -msgstr "" - -#: Model/Nc2ToNc3User.php:131 -msgid "User Migration end." -msgstr "" - -#: Model/Nc2ToNc3UserAttribute.php:79 -msgid "UserAttribute Migration start." -msgstr "" - -#: Model/Nc2ToNc3UserAttribute.php:90 -msgid "UserAttribute Migration end." -msgstr "" - -#: Model/Nc2ToNc3UserAttribute.php:394 -msgid "%s does not merge." -msgstr "" - -#: Model/Nc2ToNc3Video.php:54 -msgid "Video Migration start." -msgstr "" - -#: Model/Nc2ToNc3Video.php:60 -msgid "Multimedia is not installed." -msgstr "" - -#: Model/Nc2ToNc3Video.php:78 -msgid "Video Migration end." -msgstr "" - -#: Model/Nc2ToNc3Video.php:91 -msgid " Video Setting data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Video.php:184 -msgid " Video Setting data Migration end." -msgstr "" - -#: Model/Nc2ToNc3Video.php:244 -msgid " Video data Migration start." -msgstr "" - -#: Model/Nc2ToNc3Video.php:328 -msgid " Video data Migration end." -msgstr "" - -#: Model/Behavior/Nc2ToNc3BaseBehavior.php:748 -#: Model/Behavior/Nc2ToNc3FrameBehavior.php:101 -#: Model/Behavior/Nc2ToNc3MenuBehavior.php:403 -#: Model/Behavior/Nc2ToNc3PageBehavior.php:204 -#: Model/Behavior/Nc2ToNc3RoomBehavior.php:307 -msgid "[%s] execution time: %s sec" -msgstr "" - -#: Model/Behavior/Nc2ToNc3BaseBehavior.php:753 -#: Model/Behavior/Nc2ToNc3FrameBehavior.php:106 -#: Model/Behavior/Nc2ToNc3MenuBehavior.php:408 -#: Model/Behavior/Nc2ToNc3PageBehavior.php:209 -#: Model/Behavior/Nc2ToNc3RoomBehavior.php:312 -msgid "[%s] memory: %s MB" -msgstr "" - -#: Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php:81 -msgid "%s does not migration. Not placed in nc2 room" -msgstr "" - -#: Model/Behavior/Nc2ToNc3UserBehavior.php:53 -msgid "%s is not active.Resend approval mail." -msgstr "" - -#: Model/Behavior/Nc2ToNc3UserValidationBehavior.php:86 -msgid "The require attribute of nc3 missing in nc2." -msgstr "" - -#: View/Nc2ToNc3/migration.ctp:13 -msgid "Go here for the migration from NetCommons2 documentation." +#: View/Nc2ToNc3/migration.ctp:35 +msgid "Password" msgstr "" diff --git a/Model/Behavior/Nc2ToNc3BaseBehavior.php b/Model/Behavior/Nc2ToNc3BaseBehavior.php index d31cbbc..6ec2fab 100644 --- a/Model/Behavior/Nc2ToNc3BaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3BaseBehavior.php @@ -66,17 +66,6 @@ public function setup(Model $model, $config = array()) { 'file' => 'Nc2ToNc3.log', ] ); - - // パフォーマンスログ - CakeLog::config( - 'Nc2ToNc3PerformanceFile', - [ - 'engine' => 'FileLog', - 'types' => ['debug'], - 'scopes' => ['Nc2ToNc3Performance'], - 'file' => 'Nc2ToNc3Performance.log', - ] - ); } /** @@ -231,31 +220,6 @@ public function convertTimezone(Model $model, $timezoneOffset) { return $this->_convertTimezone($timezoneOffset); } -/** - * 実行時間の計測開始時間 - * - * @param Model $model Model using this behavior. - * @return float 現在の Unix タイムスタンプのマイクロ秒 - */ - public function executionTimeStart(Model $model) { - return $this->_executionTimeStart(); - } - -/** - * 実行時間の計測終了 - * - * @param Model $model Model using this behavior. - * @param string $methodName メソッド名 - * @param float $timeStart 計測開始時間(秒) - * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() - * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない - * @return void - */ - public function executionTimeEnd(Model $model, $methodName, $timeStart, - $executionFlushTime, $isOutputLog = false) { - $this->_executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog); - } - /** * Write migration log. * @@ -720,53 +684,4 @@ protected function _removeUseCurrent() { Current::remove('Plugin.key'); Current::remove('Room.id'); } - -/** - * 実行時間の計測開始時間 - * - * @return float 現在の Unix タイムスタンプのマイクロ秒 - */ - protected function _executionTimeStart() { - return microtime(true); - } - -/** - * 実行時間の計測終了
- *
- * Nc2ToNc3Frame, Nc2ToNc3Announcement, Nc2ToNc3Menu, Nc2ToNc3Registration
- * にざっくり実装した処、実行速度が実装前より遅くなった。
- * Nc2ToNc3User, Nc2ToNc3Room, Nc2ToNc3Pageは実行速度が早くなった。 - * - * @param string $methodName メソッド名 - * @param float $timeStart 計測開始時間(秒) - * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() - * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない - * @return void - * @SuppressWarnings(PHPMD.BooleanArgumentFlag) - */ - protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog = false) { - $executionTime = microtime(true) - $timeStart; - - if ($isOutputLog) { - CakeLog::debug( - __d('nc2_to_nc3', '[%s] execution time: %s sec', [$methodName, $executionTime]), - ['Nc2ToNc3Performance'] - ); - $memory = memory_get_usage(true) / (1024 * 1024); - CakeLog::debug( - __d('nc2_to_nc3', '[%s] memory: %s MB', [$methodName, $memory]), - ['Nc2ToNc3Performance'] - ); - } - - // $User->saveUserをループすると、UserのSaveUserBehaviorのafterSaveで、{$spaceModel}->afterUserSaveを繰り返すことにより - // 繰り返す事で使用メモリが増え続ける。 メモリが増えると徐々にsaveの処理速度が遅くなる - // ClassRegistry::flush()でクリアできるが、毎回実行するには処理が重い。 - // そのため、実行時間が例えば1.5秒以上かかり処理が遅くなってきたら、ClassRegistryをいったんクリアするよう対応する。 - // この現象はバッチで使う移行プラグイン特有のもの。画面では問題ないと思われる。 - if ($executionTime >= $executionFlushTime) { - //CakeLog::debug('[' . $methodName . '] ClassRegistry::flush()', ['Nc2ToNc3Performance']); - ClassRegistry::flush(); - } - } } diff --git a/Model/Behavior/Nc2ToNc3MenuBehavior.php b/Model/Behavior/Nc2ToNc3MenuBehavior.php index 68edd79..e9fcce4 100644 --- a/Model/Behavior/Nc2ToNc3MenuBehavior.php +++ b/Model/Behavior/Nc2ToNc3MenuBehavior.php @@ -331,7 +331,7 @@ private function __getLogArgument($nc2MenuDetail) { * Convert to Nc3MenuFrameSetting display_type. * * @param array $nc2MenuDetail Nc2MenuDetail data. - * @return string nc2 template name. + * @return Model converted date. */ private function __convertDisplayType($nc2MenuDetail) { $nc3DisplayType = null; diff --git a/Model/Behavior/Nc2ToNc3UserBehavior.php b/Model/Behavior/Nc2ToNc3UserBehavior.php index 47d04bc..f6612a0 100644 --- a/Model/Behavior/Nc2ToNc3UserBehavior.php +++ b/Model/Behavior/Nc2ToNc3UserBehavior.php @@ -407,18 +407,4 @@ private function __getNc3PrivateRoomByUserId($nc3UserId) { return $Room->find('first', $query); } -/** - * 実行時間の計測終了 - * - * @param string $methodName メソッド名 - * @param float $timeStart 計測開始時間(秒) - * @param float $executionFlushTime この実行時間(秒)を越えたらClassRegistry::flush() - * @param bool $isOutputLog パフォーマンスログ出力. true:出力|false:出力しない - * @return void - * @SuppressWarnings(PHPMD.BooleanArgumentFlag) - */ - protected function _executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog = false) { - parent::_executionTimeEnd($methodName, $timeStart, $executionFlushTime, $isOutputLog); - //parent::_executionTimeEnd($methodName, $timeStart, $executionFlushTime, true); - } } diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 26a8a15..1f6ba94 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -33,13 +33,6 @@ */ class Nc2ToNc3 extends Nc2ToNc3AppModel { -/** - * この実行時間(秒)を越えたらClassRegistry::flush() - * - * @var float - */ - public $executionFlushTime = 0; - /** * The DataSource name for nc2 * @@ -231,10 +224,6 @@ public function create($data = array(), $filterKey = false) { * @return bool True on success */ public function migration($data) { - // 移行ツールは、コントローラ経由で当メソッド(migration)を呼び出してるため、システム設定>サーバ設定>PHP最大メモリ数(初期値:128M) - // がセットされる。バッチ実行がメインのため、ここでメモリを無制限に設定 - ini_set('memory_limit', '-1'); - $this->set($data); if (!$this->validates()) { @@ -278,10 +267,6 @@ public function migration($data) { if (in_array(substr($migrationModelName, 8), $excludePlugins, true)) { continue; } - // 実行時間の計測開始時間 - /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ - $timeStart = $this->executionTimeStart(); - $migrationModelName = 'Nc2ToNc3.' . $migrationModelName; /* @var $MigrationModel Nc2ToNc3UserAttribute */ @@ -301,13 +286,6 @@ public function migration($data) { $MigrationModel->calledCakeMigration) { ClassRegistry::addObject('Nc2ToNc3', $this); } - - // ClassRegistryが移行で各プラグインのモデルのsave系を実行すると、処理が遅くなる & メモリ食うため、 - // migrationModelが切り替わるタイミングで、いったん初期化する。 - //ClassRegistry::flush(); - /* @see Nc2ToNc3BaseBehavior::executionTimeEnd() */ - $this->executionTimeEnd(__METHOD__ . ' ' . $migrationModelName, $timeStart, - $this->executionFlushTime, true); } $this->writeMigrationLog(__d('nc2_to_nc3', 'Migration end.')); diff --git a/Model/Nc2ToNc3Announcement.php b/Model/Nc2ToNc3Announcement.php index 1268f56..92d1b20 100644 --- a/Model/Nc2ToNc3Announcement.php +++ b/Model/Nc2ToNc3Announcement.php @@ -73,7 +73,6 @@ public function migrate() { $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); $Topic = ClassRegistry::init('Topics.Topic'); $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); - foreach ($nc2Announcements as $nc2Announcement) { $Announcement->begin(); @@ -135,6 +134,8 @@ public function migrate() { $message = $this->getLogArgument($nc2Announcement) . "\n" . var_export($Announcement->validationErrors, true); $this->writeMigrationLog($message); + + $Announcement->rollback(); continue; } diff --git a/Model/Nc2ToNc3AppModel.php b/Model/Nc2ToNc3AppModel.php index d198c39..2d690fc 100644 --- a/Model/Nc2ToNc3AppModel.php +++ b/Model/Nc2ToNc3AppModel.php @@ -19,10 +19,4 @@ */ class Nc2ToNc3AppModel extends Model { -/** - * この実行時間(秒)を越えたらClassRegistry::flush() - * - * @var float - */ - public $executionFlushTime = 1.5; } diff --git a/Model/Nc2ToNc3Bbs.php b/Model/Nc2ToNc3Bbs.php index a77469f..357c2e6 100644 --- a/Model/Nc2ToNc3Bbs.php +++ b/Model/Nc2ToNc3Bbs.php @@ -52,7 +52,6 @@ class Nc2ToNc3Bbs extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Bbs Migration start.')); @@ -99,6 +98,7 @@ public function migrate() { * @return bool True on success * @throws Exception */ + private function __saveNc3BbsFromNc2($nc2Bbses) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Bbs data Migration start.')); @@ -177,6 +177,7 @@ private function __saveNc3BbsFromNc2($nc2Bbses) { $message = $this->getLogArgument($nc2Bbs) . "\n" . var_export($Bbs->validationErrors, true); $this->writeMigrationLog($message); + $Bbs->rollback(); continue; } diff --git a/Model/Nc2ToNc3Blog.php b/Model/Nc2ToNc3Blog.php index 55b9990..222cffd 100644 --- a/Model/Nc2ToNc3Blog.php +++ b/Model/Nc2ToNc3Blog.php @@ -54,7 +54,6 @@ class Nc2ToNc3Blog extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Blog Migration start.')); @@ -158,6 +157,7 @@ private function __saveNc3BlogFromNc2($nc2Journals) { $message = $this->getLogArgument($nc2Journal) . "\n" . var_export($Blog->validationErrors, true); $this->writeMigrationLog($message); + $Blog->rollback(); continue; } @@ -311,7 +311,7 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $nc2CategoryId = $nc2JournalPost['Nc2JournalPost']['category_id']; $data['BlogEntry']['category_id'] = $Nc2ToNc3Category->getNc3CategoryId($nc3BlockId, $nc2CategoryId); - //$Block = ClassRegistry::init('Blocks.Block'); + $Block = ClassRegistry::init('Blocks.Block'); $Blocks = $Block->findById($nc3BlockId, null, null, -1); $nc3RoomId = $Blocks['Block']['room_id']; @@ -345,6 +345,7 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $message = $this->getLogArgument($nc2JournalPost) . "\n" . var_export($BlogEntry->validationErrors, true); $this->writeMigrationLog($message); + $BlogEntry->rollback(); continue; } diff --git a/Model/Nc2ToNc3Cabinet.php b/Model/Nc2ToNc3Cabinet.php index 2bbaf18..1975b0b 100644 --- a/Model/Nc2ToNc3Cabinet.php +++ b/Model/Nc2ToNc3Cabinet.php @@ -265,7 +265,7 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { Current::remove('Room.id'); Current::remove('Plugin.key'); - $this->writeMigrationLog(__d('nc2_to_nc3', ' Cabinet file Migration end.')); + $this->writeMigrationLog(__d('nc2_to_nc3', 'Cabinet Migration end.')); return true; } diff --git a/Model/Nc2ToNc3Calendar.php b/Model/Nc2ToNc3Calendar.php index 4caf8c3..223a887 100644 --- a/Model/Nc2ToNc3Calendar.php +++ b/Model/Nc2ToNc3Calendar.php @@ -63,7 +63,6 @@ class Nc2ToNc3Calendar extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Calendar Migration start.')); diff --git a/Model/Nc2ToNc3Frame.php b/Model/Nc2ToNc3Frame.php index dba8280..d20098a 100644 --- a/Model/Nc2ToNc3Frame.php +++ b/Model/Nc2ToNc3Frame.php @@ -55,7 +55,6 @@ class Nc2ToNc3Frame extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Frame Migration start.')); @@ -76,7 +75,6 @@ public function migrate() { * Save Frame from Nc2 while dividing. * * @return bool True on success. - * @throws Exception */ private function __saveFrameFromNc2WhileDividing() { $limit = 1000; @@ -102,35 +100,28 @@ private function __saveFrameFromNc2WhileDividing() { 'Nc2Block.row_num DESC', 'Nc2Block.col_num DESC', ], - //'limit' => $limit, + 'limit' => $limit, 'offset' => 0, ]; - //$numberOfBlocks = 0; - $nc2BlockCount = 0; - $numberOfBlocks = $Nc2Block->find('count', $query); - $query['limit'] = $limit; + $numberOfBlocks = 0; while ($nc2Blocks = $Nc2Block->find('all', $query)) { if (!$this->__saveFrameFromNc2($nc2Blocks)) { return false; } - //$numberOfBlocks += count($nc2Blocks); + $numberOfBlocks += count($nc2Blocks); $errorRate = round($this->__numberOfValidationError / $numberOfBlocks); // 5割エラー発生で止める if ($errorRate >= 0.5) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', - 'Many error data. Please check the log. %s', - ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2BlockCount: ' . $numberOfBlocks]) + __d('nc2_to_nc3', 'Many error data.Please check the log.') ] ]; return false; } - $nc2BlockCount += count($nc2Blocks); - $this->writeMigrationLog(' Nc2BlockCount: ' . $nc2BlockCount); $query['offset'] += $limit; } diff --git a/Model/Nc2ToNc3Menu.php b/Model/Nc2ToNc3Menu.php index d6f1866..887bc8a 100644 --- a/Model/Nc2ToNc3Menu.php +++ b/Model/Nc2ToNc3Menu.php @@ -54,7 +54,6 @@ class Nc2ToNc3Menu extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Menu Migration start.')); @@ -129,6 +128,8 @@ private function __saveMenuFrameSettingFromNc2($nc2BlockId) { $message = $this->getLogArgument($nc2MenuDetail) . "\n" . var_export($MenuFrameSetting->validationErrors, true); $this->writeMigrationLog($message); + + $MenuFrameSetting->rollback(); return true; // 処理を継続するためtrueを返す } diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 6692d21..0eeeb40 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -54,7 +54,6 @@ class Nc2ToNc3Multidatabase extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Multidatabase Migration start.')); @@ -66,19 +65,19 @@ public function migrate() { return false; } - /* @var $Nc2MultidbBlock AppModel */ - $Nc2MultidbBlock = $this->getNc2Model('multidatabase_block'); - $nc2MultidbBlocks = $Nc2MultidbBlock->find('all'); - if (!$this->__saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks)) { + /* @var $Nc2MultidatabaseBlock AppModel */ + $Nc2MultidatabaseBlock = $this->getNc2Model('multidatabase_block'); + $nc2MultidatabaseBlocks = $Nc2MultidatabaseBlock->find('all'); + if (!$this->__saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks)) { return false; } - $Nc2MultidbMetadata = $this->getNc2Model('multidatabase_metadata'); + $Nc2MultidatabaseMetadata = $this->getNc2Model('multidatabase_metadata'); // col_noをうめるためにmultidatabase_id - $nc2MultidbMetadatas = $Nc2MultidbMetadata->find('all', [ + $nc2MultidatabaseMetadatas = $Nc2MultidatabaseMetadata->find('all', [ 'order' => 'multidatabase_id ASC' ]); - if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidbMetadatas)) { + if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidatabaseMetadatas)) { return false; } @@ -147,6 +146,7 @@ public function migrate() { * @return bool True on success * @throws Exception */ + private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase data Migration start.')); @@ -200,6 +200,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($nc2Multidatabase) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); + $Multidatabase->rollback(); continue; } @@ -227,6 +228,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($data) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); + $Multidatabase->rollback(); continue; } @@ -249,6 +251,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $message = $this->getLogArgument($data) . "\n" . var_export($Multidatabase->validationErrors, true); $this->writeMigrationLog($message); + $Multidatabase->rollback(); continue; } @@ -287,21 +290,21 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { /** * Save BlogFrameSetting from Nc2. * - * @param array $nc2MultidbBlocks Nc2MultidatabaseBlock data. + * @param array $nc2MultidatabaseBlocks Nc2ournalBlock data. * @return bool True on success * @throws Exception */ - private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks) { + private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks) { $this->writeMigrationLog(__d('nc2_to_nc3', ' MultidatabaseFrameSetting data Migration start.')); /* @var $MultidbFrameSetting BlogFrameSetting */ /* @var $Frame Frame */ $MultidbFrameSetting = ClassRegistry::init('Multidatabases.MultidatabaseFrameSetting'); $Frame = ClassRegistry::init('Frames.Frame'); - foreach ($nc2MultidbBlocks as $nc2MultidbBlock) { + foreach ($nc2MultidatabaseBlocks as $nc2MultidatabaseBlock) { $MultidbFrameSetting->begin(); try { - $data = $this->generateNc3MultidatabaseFrameSettingData($nc2MultidbBlock); + $data = $this->generateNc3MultidatabaseFrameSettingData($nc2MultidatabaseBlock); if (!$data) { $MultidbFrameSetting->rollback(); continue; @@ -312,7 +315,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。 // var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html - $message = $this->getLogArgument($nc2MultidbBlock) . "\n" . + $message = $this->getLogArgument($nc2MultidatabaseBlock) . "\n" . var_export($MultidbFrameSetting->validationErrors, true); $this->writeMigrationLog($message); @@ -324,7 +327,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。 // var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html - $message = $this->getLogArgument($nc2MultidbBlock) . "\n" . + $message = $this->getLogArgument($nc2MultidatabaseBlock) . "\n" . var_export($MultidbFrameSetting->validationErrors, true); $this->writeMigrationLog($message); @@ -332,7 +335,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidbBlocks) { continue; } - $nc2BlockId = $nc2MultidbBlock['Nc2MultidatabaseBlock']['block_id']; + $nc2BlockId = $nc2MultidatabaseBlock['Nc2MultidatabaseBlock']['block_id']; $idMap = [ $nc2BlockId => $MultidbFrameSetting->id ]; @@ -440,20 +443,23 @@ private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase Content Migration start.')); - /* @var $DbContent MultidatabaseContent */ + /* @var $DbContent BlogEntry */ /* @var $Nc2ToNc3Category Nc2ToNc3Category */ $DbContent = ClassRegistry::init('Multidatabases.MultidatabaseContent'); Current::write('Plugin.key', 'multidatabases'); - //$BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); - //$Block = ClassRegistry::init('Blocks.Block'); + //$Nc2Journal = $this->getNc2Model('journal'); + $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); + $Block = ClassRegistry::init('Blocks.Block'); //$Topic = ClassRegistry::init('Topics.Topic'); - //$Nc2MultidbFile = $this->getNc2Model('multidatabase_file'); + + $Nc2MultidbFile = $this->getNc2Model('multidatabase_file'); + $AuthorizationKey = ClassRegistry::init('AuthorizationKeys.AuthorizationKey'); $UploadFile = ClassRegistry::init('Files.UploadFile'); - $Like = ClassRegistry::init('Likes.Like'); + $Like = ClassRegistry::init('Likes.Like'); foreach ($nc2MultidbContents as $nc2MultidbContent) { $DbContent->begin(); //$DbContent->Behaviors->disable('Attachment'); @@ -503,6 +509,7 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $message = $this->getLogArgument($nc2MultidbContent) . "\n" . var_export($DbContent->validationErrors, true); $this->writeMigrationLog($message); + $DbContent->rollback(); continue; } diff --git a/Model/Nc2ToNc3Page.php b/Model/Nc2ToNc3Page.php index 07f43ed..8133a23 100644 --- a/Model/Nc2ToNc3Page.php +++ b/Model/Nc2ToNc3Page.php @@ -66,7 +66,6 @@ class Nc2ToNc3Page extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Page Migration start.')); @@ -121,7 +120,6 @@ public function migrate() { * * @param string $nc2LangDirName Nc2Page lang_dirname. * @return bool True on success. - * @throws Exception */ private function __savePageFromNc2WhileDividing($nc2LangDirName) { $limit = 1000; @@ -137,7 +135,7 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { 'order' => [ 'Nc2Page.parent_id', ], - //'limit' => $limit, + 'limit' => $limit, 'offset' => 0, ]; @@ -145,25 +143,20 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { // @see https://github.com/NetCommons3/M17n/blob/3.1.0/Model/Behavior/M17nBehavior.php#L228 $this->changeNc3CurrentLanguage($nc2LangDirName); - //$numberOfPages = 0; - $nc2PageCount = 0; - $numberOfPages = $Nc2Page->find('count', $query); - $query['limit'] = $limit; + $numberOfPages = 0; while ($nc2Pages = $Nc2Page->find('all', $query)) { if (!$this->__savePageFromNc2($nc2Pages)) { $this->restoreNc3CurrentLanguage(); return false; } - //$numberOfPages += count($nc2Pages); + $numberOfPages += count($nc2Pages); $errorRate = round($this->__numberOfValidationError / $numberOfPages); // 5割エラー発生で止める。英語ページは少ない可能性があるので、最低件数も判断する if ($errorRate >= 0.5 && $numberOfPages > 100) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', - 'Many error data. Please check the log. %s', - ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2PagesCount: ' . $numberOfPages]) + __d('nc2_to_nc3', 'Many error data.Please check the log.') ] ]; @@ -171,8 +164,6 @@ private function __savePageFromNc2WhileDividing($nc2LangDirName) { return false; } - $nc2PageCount += count($nc2Pages); - $this->writeMigrationLog(' Nc2PagesCount: ' . $nc2PageCount); $query['offset'] += $limit; } @@ -194,10 +185,6 @@ private function __savePageFromNc2($nc2Pages) { $this->saveExistingMap($nc2Pages); foreach ($nc2Pages as $nc2Page) { - // 実行時間の計測開始時間 - /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ - $timeStart = $this->executionTimeStart(); - $Page->begin(); try { /* @@ -209,7 +196,6 @@ private function __savePageFromNc2($nc2Pages) { $data = $this->__generateNc3Data($nc2Page); if (!$data) { $Page->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -228,14 +214,13 @@ private function __savePageFromNc2($nc2Pages) { $this->__numberOfValidationError++; - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); + $Page->rollback(); continue; } $nc2PageId = $nc2Page['Nc2Page']['page_id']; if ($this->getMap($nc2PageId)) { $Page->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -245,7 +230,6 @@ private function __savePageFromNc2($nc2Pages) { $this->saveMap('Page', $idMap); $Page->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index 31f2bff..ff2b8e0 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -65,7 +65,6 @@ class Nc2ToNc3Questionnaire extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Questionnaire Migration start.')); @@ -118,7 +117,6 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { $Questionnaire = ClassRegistry::init('Questionnaires.Questionnaire'); $Nc2QBlock = $this->getNc2Model('questionnaire_block'); $Frame = ClassRegistry::init('Frames.Frame'); - foreach ($nc2Questionnaires as $nc2Questionnaire) { $Questionnaire->begin(); try { @@ -161,6 +159,8 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { $message = $this->getLogArgument($nc2Questionnaire) . "\n" . var_export($Questionnaire->validationErrors, true); $this->writeMigrationLog($message); + + $Questionnaire->rollback(); continue; } @@ -204,7 +204,6 @@ private function __saveQuestionnaireFrameSettingFromNc2($nc2QBlocks) { $QFrameSetting = ClassRegistry::init('Questionnaires.QuestionnaireFrameSetting'); $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); $Block = ClassRegistry::init('Blocks.Block'); - foreach ($nc2QBlocks as $nc2QBlock) { $QFrameSetting->begin(); try { @@ -287,7 +286,6 @@ private function __saveQuestionnaireAnswerSummaryFromNc2($nc2QSummaries) { $QAnswerSummary = ClassRegistry::init('Questionnaires.QuestionnaireAnswerSummary'); $Questionnaire = ClassRegistry::init('Questionnaires.Questionnaire'); $nc2PreviousQId = null; - foreach ($nc2QSummaries as $nc2QSummary) { $QAnswerSummary->begin(); try { diff --git a/Model/Nc2ToNc3Quiz.php b/Model/Nc2ToNc3Quiz.php index b6f3d26..44f7c4e 100644 --- a/Model/Nc2ToNc3Quiz.php +++ b/Model/Nc2ToNc3Quiz.php @@ -65,7 +65,6 @@ class Nc2ToNc3Quiz extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Quiz Migration start.')); @@ -160,6 +159,8 @@ private function __saveQuizFromNc2($nc2Quizzes) { $message = $this->getLogArgument($nc2Quiz) . "\n" . var_export($Quiz->validationErrors, true); $this->writeMigrationLog($message); + + $Quiz->rollback(); continue; } @@ -208,7 +209,6 @@ private function __saveQuizFrameSettingFromNc2($nc2QBlocks) { $QFrameSetting = ClassRegistry::init('Quizzes.QuizFrameSetting'); $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); $Block = ClassRegistry::init('Blocks.Block'); - foreach ($nc2QBlocks as $nc2QBlock) { $QFrameSetting->begin(); try { @@ -290,7 +290,6 @@ private function __saveQuizAnswerSummaryFromNc2($nc2QSummaries) { /* @var $Quiz Quiz */ $QAnswerSummary = ClassRegistry::init('Quizzes.QuizAnswerSummary'); $Quiz = ClassRegistry::init('Quizzes.Quiz'); - $nc2PreviousQId = null; foreach ($nc2QSummaries as $nc2QSummary) { $QAnswerSummary->begin(); diff --git a/Model/Nc2ToNc3Registration.php b/Model/Nc2ToNc3Registration.php index 2ba8b2a..221344f 100644 --- a/Model/Nc2ToNc3Registration.php +++ b/Model/Nc2ToNc3Registration.php @@ -58,7 +58,6 @@ class Nc2ToNc3Registration extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Registration Migration start.')); @@ -159,6 +158,8 @@ private function __saveRegistrationFromNc2($nc2Registrations) { $message = $this->getLogArgument($nc2Registration) . "\n" . var_export($Registration->validationErrors, true); $this->writeMigrationLog($message); + + $Registration->rollback(); continue; } @@ -273,7 +274,7 @@ private function __saveRegistrationDataFromNc2($nc2RegistrationData) { * @throws Exception */ private function __saveRegistrationAnswerFromNc2($nc2ItemData, $nc3Registration, $nc3Summary) { - //$this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration start.')); + $this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration start.')); /* @var $RegistrationAnswer RegistrationAnswer */ $RegistrationAnswer = ClassRegistry::init('Registrations.RegistrationAnswer'); @@ -300,7 +301,7 @@ private function __saveRegistrationAnswerFromNc2($nc2ItemData, $nc3Registration, throw $ex; } - //$this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration end.')); + $this->writeMigrationLog(__d('nc2_to_nc3', ' RegistrationAnswer data Migration end.')); return true; } @@ -365,10 +366,10 @@ private function __saveFrameFromNc2($nc2RBlocks) { // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($nc2RBlocks) . "\n" . var_export($Frame->validationErrors, true); - $this->writeMigrationLog($message); + $this->writeMigrationLog($message); - $Frame->rollback(); - continue; + $Frame->rollback(); + continue; } $idMap = [ diff --git a/Model/Nc2ToNc3Room.php b/Model/Nc2ToNc3Room.php index f9ea4ae..83b5b0c 100644 --- a/Model/Nc2ToNc3Room.php +++ b/Model/Nc2ToNc3Room.php @@ -79,7 +79,6 @@ class Nc2ToNc3Room extends Nc2ToNc3AppModel { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Room Migration start.')); @@ -169,10 +168,6 @@ private function __saveRoomFromNc2($nc2LangDirName) { $RolesRoomsUser = ClassRegistry::init('Rooms.RolesRoomsUser'); foreach ($nc2Pages as $nc2Page) { - // 実行時間の計測開始時間 - /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ - $timeStart = $this->executionTimeStart(); - /* if (!$this->isMigrationRow($nc2User)) { continue; @@ -183,7 +178,6 @@ private function __saveRoomFromNc2($nc2LangDirName) { $data = $this->__generateNc3Data($nc2Page); if (!$data) { $Room->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -197,7 +191,7 @@ private function __saveRoomFromNc2($nc2LangDirName) { var_export($Room->validationErrors, true); $this->writeMigrationLog($message); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); + $Room->rollback(); continue; } $nc2PageId = $nc2Page['Nc2Page']['page_id']; @@ -211,14 +205,12 @@ private function __saveRoomFromNc2($nc2LangDirName) { if (!$RolesRoomsUser->saveRolesRoomsUsersForRooms($data)) { // RolesRoomsUser::saveRolesRoomsUsersForRoomsではreturn falseなし $Room->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2RoomId = $nc2Page['Nc2Page']['room_id']; if ($this->getMap($nc2RoomId)) { $Room->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -228,7 +220,6 @@ private function __saveRoomFromNc2($nc2LangDirName) { $this->saveMap('Room', $idMap); $Room->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index 06cee2d..ce50472 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -108,7 +108,6 @@ public function beforeValidate($options = array()) { * Migration method. * * @return bool True on success. - * @throws Exception */ public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'User Migration start.')); @@ -129,7 +128,6 @@ public function migrate() { * Save User from Nc2 while dividing. * * @return bool True on success. - * @throws Exception */ private function __saveUserFromNc2WhileDividing() { $limit = 1000; @@ -141,37 +139,28 @@ private function __saveUserFromNc2WhileDividing() { 'Nc2User.insert_time', 'Nc2User.user_id' ], - //'limit' => $limit, + 'limit' => $limit, 'offset' => 0, ]; - // NC2ユーザ件数 - //$numberOfUsers = 0; - $nc2UserCount = 0; - $numberOfUsers = $Nc2User->find('count', $query); - - $query['limit'] = $limit; + $numberOfUsers = 0; while ($nc2Users = $Nc2User->find('all', $query)) { if (!$this->__saveUserFromNc2($nc2Users)) { return false; } - //$numberOfUsers += count($nc2Users); + $numberOfUsers += count($nc2Users); $errorRate = round($this->__numberOfValidationError / $numberOfUsers); // 5割エラー発生で止める if ($errorRate >= 0.5) { $this->validationErrors = [ 'database' => [ - __d('nc2_to_nc3', - 'Many error data. Please check the log. %s', - ['ValidationErrorCount: ' . $this->__numberOfValidationError . ' Nc2UserCount: ' . $numberOfUsers]) + __d('nc2_to_nc3', 'Many error data.Please check the log.') ] ]; return false; } - $nc2UserCount += count($nc2Users); - $this->writeMigrationLog(' Nc2UserCount: ' . $nc2UserCount); $query['offset'] += $limit; } @@ -191,22 +180,16 @@ private function __saveUserFromNc2($nc2Users) { $this->saveExistingMap($nc2Users); foreach ($nc2Users as $nc2User) { - // 実行時間の計測開始時間 - /* @see Nc2ToNc3BaseBehavior::executionTimeStart() */ - $timeStart = $this->executionTimeStart(); - $User->begin(); try { if (!$this->isMigrationRow($nc2User)) { $User->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $data = $this->__generateNc3Data($nc2User); if (!$data) { $User->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -227,21 +210,19 @@ private function __saveUserFromNc2($nc2Users) { $this->__numberOfValidationError++; - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); + $User->rollback(); continue; } // Nc3Room,Nc3Pageの値をNC2Pageの値に更新 if (!$this->__saveRoomAndPageFromNc2($nc2User, $User->id)) { $User->rollback(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } $nc2UserId = $nc2User['Nc2User']['user_id']; if ($this->getMap($nc2UserId)) { $User->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); continue; } @@ -251,7 +232,6 @@ private function __saveUserFromNc2($nc2Users) { $this->saveMap('User', $idMap); $User->commit(); - $this->executionTimeEnd(__METHOD__, $timeStart, $this->executionFlushTime); } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない @@ -588,7 +568,6 @@ private function __generateNc3RolesRoomsUser($nc3User, $nc2User) { * @param array $nc2User Nc2User data. * @param string $nc3UserId Nc3User id. * @return bool True on success - * @throws Exception */ private function __saveRoomAndPageFromNc2($nc2User, $nc3UserId) { $nc2Page = $this->getNc2PrivateRoomByUserId($nc2User['Nc2User']['user_id']); From c4ea889dfe9e84b42a2b14331c8e7888d748d85a Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Thu, 9 May 2019 14:37:54 +0900 Subject: [PATCH 10/55] =?UTF-8?q?change:=20beforeValidate()=E3=82=92?= =?UTF-8?q?=E5=91=BC=E3=81=B3=E5=87=BA=E3=81=99=E3=81=9F=E3=81=B3=E3=81=AB?= =?UTF-8?q?Hash::merge=E3=81=A7=E3=83=90=E3=83=AA=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=AB=E3=83=BC=E3=83=AB=E3=81=8C?= =?UTF-8?q?=E5=A2=97=E3=81=88=E3=82=8B=E3=81=93=E3=81=A8=E3=81=8C=E3=81=82?= =?UTF-8?q?=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82ValidateM?= =?UTF-8?q?erge::merge=E3=81=B8=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88?= =?UTF-8?q?=E3=81=9F=20Refs=20https://github.com/NetCommons3/NetCommons3/i?= =?UTF-8?q?ssues/1486?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3.php | 2 +- Model/Nc2ToNc3User.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 1f6ba94..4785626 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -74,7 +74,7 @@ class Nc2ToNc3 extends Nc2ToNc3AppModel { * @see Model::save() */ public function beforeValidate($options = array()) { - $this->validate = Hash::merge( + $this->validate = ValidateMerge::merge( $this->validate, [ 'database' => [ diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index ce50472..def0be3 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -88,7 +88,7 @@ public function beforeValidate($options = array()) { // https://github.com/cakephp/cakephp/blob/2.9.4/lib/Cake/Model/Validator/CakeValidationSet.php#L131 $this->set('database'); - $this->validate = Hash::merge( + $this->validate = ValidateMerge::merge( $this->validate, [ 'database' => [ From aed3de7cfc69b9eced04753696eec8ae49b32395 Mon Sep 17 00:00:00 2001 From: Withone10 Date: Wed, 8 May 2019 15:09:15 +0900 Subject: [PATCH 11/55] =?UTF-8?q?=E3=83=90=E3=82=B0=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PhotoAlbumFrameSettingがデフォルト値で登録されるバグの修正 Frame.bock_idが同一になるバグの修正 Blockデータが作成されないバグの修正 PhotoAlbum.jacketが移行されないバグの修正 ログメッセージ出力時にNoticeが発生するバグの修正 非公開のPhotoAlbumが配置されてしまうバグの修正 1つのFrameに集約されてしまうバグの修正 (cherry picked) --- Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php | 39 +--- Model/Nc2ToNc3PhotoAlbum.php | 199 ++++++++++++------ 2 files changed, 146 insertions(+), 92 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php b/Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php index fb5bd30..52bf597 100644 --- a/Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php +++ b/Model/Behavior/Nc2ToNc3PhotoAlbumBehavior.php @@ -51,14 +51,11 @@ public function getLogArgument(Model $model, $nc2Photoalbum) { * @param Model $model Model using this behavior. * @param array $frameMap FrameMap data. * @param array $nc2PhotoalbumAlbum Nc2PhotoalbumAlbum data. - * @param array $nc2Photo Nc2PhotoalbumPhoto data. * @param array $nc3RoomId nc3 room id. * @return array Nc3PhotoAlbum data. */ - public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2PhotoalbumAlbum, $nc2Photo, $nc3RoomId) { - /* @var $Block Block */ + public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2PhotoalbumAlbum, $nc3RoomId) { /* @var $Nc2ToNc3Map Nc2ToNc3Map */ - $Block = ClassRegistry::init('Blocks.Block'); $Nc2ToNc3Map = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Map'); $nc2AlbumId = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_id']; $mapIdList = $Nc2ToNc3Map->getMapIdList('PhotoAlbum', $nc2AlbumId); @@ -67,22 +64,6 @@ public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2Photoalbu return []; } - $nc3Block = $Block->findByRoomIdAndPluginKey( - //$frameMap['Frame']['room_id'], - $nc3RoomId, - 'photo_albums', - ['id', 'key'], - null, - -1 - ); - if (!$nc3Block) { - // 現状、nc2ルーム内に未配置だとnc3ブロックデータが作成されない移行プログラムなため、ここで返す - // そこまで追えなかった - $message = __d('nc2_to_nc3', '%s does not migration. Not placed in nc2 room', $this->__getLogArgument($nc2PhotoalbumAlbum)); - $this->_writeMigrationLog($message); - return []; - } - /* @var $Nc2ToNc3User Nc2ToNc3User */ /* @var $Nc2ToNc3Upload Nc2ToNc3Upload */ $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); @@ -94,7 +75,7 @@ public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2Photoalbu $nc2Jacket = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_jacket']; $jacket = $this->__generatePresetFile($nc2Jacket); } - $nc3Photo = $Nc2ToNc3Upload->generateUploadFile($nc2Photo['Nc2PhotoalbumPhoto']['upload_id']); + $nc3Photo = $jacket; if ($frameMap) { // フレームがあったらセット @@ -102,14 +83,6 @@ public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2Photoalbu 'id' => $frameMap['Frame']['id'], ]; } - $data['Block'] = [ - 'id' => $nc3Block['Block']['id'], - 'key' => $nc3Block['Block']['key'], - //'room_id' => $frameMap['Frame']['room_id'], - 'room_id' => $nc3RoomId, - 'plugin_key' => 'photo_albums', - 'public_type' => 1, - ]; $data['PhotoAlbum'] = [ 'id' => '', 'key' => '', @@ -118,7 +91,7 @@ public function generateNc3PhotoAlbumData(Model $model, $frameMap, $nc2Photoalbu 'name' => $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_name'], 'description' => $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_description'], 'selectedJacketIndex' => '0', - 'jacket' => $jacket, + 'jacket' => [], 'created_user' => $Nc2ToNc3User->getCreatedUser($nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']), 'created' => $this->_convertDate($nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['insert_time']), ]; @@ -229,9 +202,9 @@ public function generateNc3PhotoAlbumFrameSettingData(Model $model, $data, $fram 'created_user' => $Nc2ToNc3User->getCreatedUser($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']), 'created' => $this->_convertDate($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']['insert_time']), ]; - $data += $photoAlbumFrameSet; + $photoAlbumFrameSet['PhotoAlbumFrameSetting'] += $data['PhotoAlbumFrameSetting']; - return $data; + return $photoAlbumFrameSet; } /** @@ -289,7 +262,7 @@ private function __generatePresetFile($nc2Jacket) { * @return string Log argument */ private function __getLogArgument($nc2Photoalbum) { - if (!isset($nc2Photoalbum['Nc2PhotoalbumBlock']['block_id'])) { + if (isset($nc2Photoalbum['Nc2PhotoalbumBlock']['block_id'])) { return 'Nc2PhotoalbumBlock' . 'block_id' . $nc2Photoalbum['Nc2PhotoalbumBlock']['block_id']; } diff --git a/Model/Nc2ToNc3PhotoAlbum.php b/Model/Nc2ToNc3PhotoAlbum.php index 39c534e..9fcaa5f 100644 --- a/Model/Nc2ToNc3PhotoAlbum.php +++ b/Model/Nc2ToNc3PhotoAlbum.php @@ -110,6 +110,7 @@ private function __savePhotoAlbumFrameSettingFromNc2($nc2PhotoalbumBlocks) { /* @var $Block Block */ $PhotoAlbum = ClassRegistry::init('PhotoAlbums.PhotoAlbum'); $FrameSetting = ClassRegistry::init('PhotoAlbums.PhotoAlbumFrameSetting'); + $PhotoAlbumSetting = ClassRegistry::init('PhotoAlbums.PhotoAlbumSetting'); $PhotoAlbumsComponent = new PhotoAlbumsComponent(new ComponentCollection()); $Frame = ClassRegistry::init('Frames.Frame'); $Block = ClassRegistry::init('Blocks.Block'); @@ -133,13 +134,12 @@ private function __savePhotoAlbumFrameSettingFromNc2($nc2PhotoalbumBlocks) { Current::write('Room.id', $nc3RoomId); $Block->create(); $BlocksLanguage->create(); + $PhotoAlbumSetting->create(false); $PhotoAlbumsComponent->initializeSetting(); $frameSetting = $FrameSetting->read(); $data = [ 'PhotoAlbumFrameSetting' => $frameSetting['PhotoAlbumFrameSetting'], ]; - //error_log(print_r('fddsdfdfs', true)."\n\n", 3, LOGS."/tail.log"); - //error_log(print_r($frameSetting, true)."\n\n", 3, LOGS."/tail.log"); $data = $this->generateNc3PhotoAlbumFrameSettingData($data, $frameMap, $nc2PhotoalbumBlock); if (!$data) { @@ -205,8 +205,6 @@ private function __savePhotoAlbumFromNc2($nc2PhotoalbumIdList) { $PhotoAlbum = ClassRegistry::init('PhotoAlbums.PhotoAlbum'); $PhotoAlbumPhoto = ClassRegistry::init('PhotoAlbums.PhotoAlbumPhoto'); $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); - $DisplayAlbum = ClassRegistry::init('PhotoAlbums.PhotoAlbumDisplayAlbum'); - $Block = ClassRegistry::init('Blocks.Block'); $Nc2PhotoalbumBlock = $this->getNc2Model('photoalbum_block'); $Nc2PhotoalbumPhoto = $this->getNc2Model('photoalbum_photo'); $Nc2PhotoalbumAlbum = $this->getNc2Model('photoalbum_album'); @@ -223,60 +221,42 @@ private function __savePhotoAlbumFromNc2($nc2PhotoalbumIdList) { ], ]); - // nc2 ブロック(=nc3のフレーム)なくてもデータは移行する - $frameMap = []; - foreach ($nc2PhotoalbumAlbums as $nc2PhotoalbumAlbum) { - $nc2PhotoalbumId = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['photoalbum_id']; - $nc2PhotoalbumBlock = $Nc2PhotoalbumBlock->findByPhotoalbumId($nc2PhotoalbumId); - if ($nc2PhotoalbumBlock) { - $frameMap = $Nc2ToNc3Frame->getMap($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']['block_id']); - break; - } - } - foreach ($nc2PhotoalbumAlbums as $nc2PhotoalbumAlbum) { $PhotoAlbum->begin(); try { - //$nc2PhotoalbumId = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['photoalbum_id']; - //$nc2PhotoalbumBlock = $Nc2PhotoalbumBlock->findByPhotoalbumId($nc2PhotoalbumId); - //if (!$nc2PhotoalbumBlock) { - // $PhotoAlbum->rollback(); - // continue; - //} - //$frameMap = $Nc2ToNc3Frame->getMap($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']['block_id']); - - $nc2AlbumId = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_id']; - $nc2Photos = $Nc2PhotoalbumPhoto->findAllByAlbumId($nc2AlbumId, null, ['photo_sequence' => 'ASC'], -1); - if (count($nc2Photos) === 0) { - $message = $this->getLogArgument($nc2Photos); - $this->writeMigrationLog($message); - - $PhotoAlbum->rollback(); - continue; + $frameMap = []; + // 最初のblock_idを取得。残りは後処理の__saveDisplayAlbumで登録する。 + $nc2PhotoalbumBlock = $Nc2PhotoalbumBlock->find('first', [ + 'conditions' => [ + 'photoalbum_id' => $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['photoalbum_id'], + 'display_album_id' => ['0', $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_id']] + ], + 'fields' => 'block_id', + 'order' => 'block_id', + 'recursive' => -1, + ]); + if ($nc2PhotoalbumBlock) { + $frameMap = $Nc2ToNc3Frame->getMap($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']['block_id']); } - $firstPhoto = array_shift($nc2Photos); - //$data = $this->generateNc3PhotoAlbumData($frameMap, $nc2PhotoalbumAlbum, $firstPhoto); - $data = $this->generateNc3PhotoAlbumData($frameMap, $nc2PhotoalbumAlbum, $firstPhoto, $nc3RoomId); + + $data = $this->generateNc3PhotoAlbumData($frameMap, $nc2PhotoalbumAlbum, $nc3RoomId); if (!$data) { $PhotoAlbum->rollback(); continue; } - $nc3Block = $Block->findByRoomIdAndPluginKey( - //$frameMap['Frame']['room_id'], - $nc3RoomId, - 'photo_albums', - null, - null, - -1 - ); - $data['Block'] = $nc3Block['Block']; - $data['PhotoAlbum']['block_id'] = $nc3Block['Block']['id']; - Current::write('Block.id', $nc3Block['Block']['id']); - //$this->writeCurrent($frameMap, 'photo_albums'); $this->__writeCurrent($frameMap, 'photo_albums', $nc3RoomId); + if (!($data = $this->__savePhotoAlbumSetting($nc3RoomId, $data))) { + $message = $this->getLogArgument($nc2PhotoalbumAlbum); + $this->writeMigrationLog($message); + + $PhotoAlbum->rollback(); + continue; + } + Current::write('Block.id', $data['Block']['id']); + $PhotoAlbum->create(); $PhotoAlbum->validate = []; if (!$PhotoAlbum->saveAlbumForAdd($data)) { @@ -287,21 +267,18 @@ private function __savePhotoAlbumFromNc2($nc2PhotoalbumIdList) { $PhotoAlbum->rollback(); continue; } - if (Current::read('Frame.key') == self::DUMMY_FRAME_KEY) { - // $PhotoAlbum->saveAlbumForAdd($data)では、新規登録時に$PhotoAlbumDisplayAlbumが必須で登録される。 - // ダミーで登録したFrameKeyのデータを削除 - $conditions = array('frame_key' => self::DUMMY_FRAME_KEY); - if (!$DisplayAlbum->deleteAll($conditions, false)) { - // 基本ありえない - $message = $this->getLogArgument($nc2PhotoalbumAlbum) . "\n"; - $this->writeMigrationLog($message); - $PhotoAlbum->rollback(); - continue; - } + $nc3PhotoAlbum = $PhotoAlbum->read(); + if (!$this->__saveDisplayAlbum($nc2PhotoalbumAlbum, $nc3PhotoAlbum)) { + $message = $this->getLogArgument($nc2PhotoalbumAlbum); + $this->writeMigrationLog($message); + + $PhotoAlbum->rollback(); + continue; } - $nc3PhotoAlbum = $PhotoAlbum->read(); + $nc2AlbumId = $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_id']; + $nc2Photos = $Nc2PhotoalbumPhoto->findAllByAlbumId($nc2AlbumId, null, ['photo_sequence' => 'ASC'], -1); foreach ($nc2Photos as $nc2Photo) { $data = $this->generateNc3PhotoData($nc3PhotoAlbum['PhotoAlbum'], $nc2Photo); $PhotoAlbumPhoto->create(); @@ -311,7 +288,6 @@ private function __savePhotoAlbumFromNc2($nc2PhotoalbumIdList) { var_export($PhotoAlbumPhoto->validationErrors, true); $this->writeMigrationLog($message); - $PhotoAlbumPhoto->rollback(); continue; } } @@ -370,6 +346,111 @@ private function __getNc2PhotoalbumIdList($nc2Photoalbums) { return $nc2PhotoalbumIdList; } +/** + * Save PhotoAlbumSetting. + * + * @param string $nc3RoomId nc3 room id. + * @param array $nc3PhotoAlbum data. + * @return array Nc3PhotoAlbum data. + */ + private function __savePhotoAlbumSetting($nc3RoomId, $nc3PhotoAlbum) { + /* @var $Block Block */ + $Block = ClassRegistry::init('Blocks.Block'); + $PhotoAlbumSetting = ClassRegistry::init('PhotoAlbums.PhotoAlbumSetting'); + + $nc3Block = $Block->findByRoomIdAndPluginKey( + $nc3RoomId, + 'photo_albums', + ['id', 'key'], + null, + -1 + ); + + if (!$nc3Block) { + $data = $PhotoAlbumSetting->createBlockSetting(); + if (!$PhotoAlbumSetting->savePhotoAlbumSetting($data)) { + return []; + } + + $nc3Block = $Block->findByRoomIdAndPluginKey( + $nc3RoomId, + 'photo_albums', + ['id', 'key'], + null, + -1 + ); + } + + $nc3PhotoAlbum['Block'] = [ + 'id' => $nc3Block['Block']['id'], + 'key' => $nc3Block['Block']['key'], + 'room_id' => $nc3RoomId, + 'plugin_key' => 'photo_albums', + 'public_type' => 1, + ]; + $nc3PhotoAlbum['PhotoAlbum']['block_id'] = $nc3Block['Block']['id']; + + return $nc3PhotoAlbum; + } + +/** + * Save DisplayAlbum. + * + * @param array $nc2PhotoalbumAlbum data. + * @param array $nc3PhotoAlbum data. + * @return bool + */ + private function __saveDisplayAlbum($nc2PhotoalbumAlbum, $nc3PhotoAlbum) { + $DisplayAlbum = ClassRegistry::init('PhotoAlbums.PhotoAlbumDisplayAlbum'); + if (Current::read('Frame.key') == self::DUMMY_FRAME_KEY) { + // $PhotoAlbum->saveAlbumForAdd($data)では、新規登録時に$PhotoAlbumDisplayAlbumが必須で登録される。 + // ダミーで登録したFrameKeyのデータを削除 + $conditions = array('frame_key' => self::DUMMY_FRAME_KEY); + $DisplayAlbum->deleteAll($conditions, false); + } + + if ($nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['public_flag'] === '0' ) { + $conditions = [ + 'frame_key' => Current::read('Frame.key'), + 'album_key' => $nc3PhotoAlbum['PhotoAlbum']['key'] + ]; + $DisplayAlbum->deleteAll($conditions, false); + + // 非公開はどのフレームにも表示しない + return true; + } + + $Nc2PhotoalbumBlock = $this->getNc2Model('photoalbum_block'); + $nc2PhotoalbumBlocks = $Nc2PhotoalbumBlock->find('all', [ + 'conditions' => [ + 'photoalbum_id' => $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['photoalbum_id'], + 'display_album_id' => ['0', $nc2PhotoalbumAlbum['Nc2PhotoalbumAlbum']['album_id']] + ], + 'fields' => 'block_id', + 'order' => 'block_id', + 'recursive' => -1, + ]); + // 先頭のblock_idは前処理で登録済み + array_shift($nc2PhotoalbumBlocks); + + $Nc2ToNc3Frame = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Frame'); + foreach($nc2PhotoalbumBlocks as $nc2PhotoalbumBlock) { + $frameMap = $Nc2ToNc3Frame->getMap($nc2PhotoalbumBlock['Nc2PhotoalbumBlock']['block_id']); + if ($frameMap) { + $displayAlbum = [ + 'frame_key' => $frameMap['Frame']['key'], + 'album_key' => $nc3PhotoAlbum['PhotoAlbum']['key'] + ]; + $DisplayAlbum->create($displayAlbum); + if (!$DisplayAlbum->save()) { + return false; + } + } + } + + return true; + } + /** * Write Current. * From cb3110943fa50547428a6ac7d8e9685bd37e92f3 Mon Sep 17 00:00:00 2001 From: Withone10 Date: Tue, 21 May 2019 09:51:22 +0900 Subject: [PATCH 12/55] =?UTF-8?q?=E6=8A=95=E7=A5=A8=E6=95=B0=E3=80=81?= =?UTF-8?q?=E3=83=80=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89=E6=95=B0?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=81=AE=E7=A7=BB=E8=A1=8C=E5=87=A6?= =?UTF-8?q?=E7=90=86=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1019 --- Model/Behavior/Nc2ToNc3BbsBehavior.php | 8 ++++++++ Model/Behavior/Nc2ToNc3BlogBehavior.php | 10 +++++++++- Model/Behavior/Nc2ToNc3CabinetBehavior.php | 6 ++++-- Model/Nc2ToNc3Bbs.php | 8 +++++++- Model/Nc2ToNc3Blog.php | 8 +++++++- Model/Nc2ToNc3Cabinet.php | 18 +++++++++++++++++- 6 files changed, 52 insertions(+), 6 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3BbsBehavior.php b/Model/Behavior/Nc2ToNc3BbsBehavior.php index fdd78ea..5a30913 100644 --- a/Model/Behavior/Nc2ToNc3BbsBehavior.php +++ b/Model/Behavior/Nc2ToNc3BbsBehavior.php @@ -267,6 +267,14 @@ public function generateNc3BbsArticleData(Model $model, $nc2BbsPost, $nc2BbsPost 'article_no' => $nc3BbsArticleNo ], ]; + if ($nc2BbsPost['Nc2BbsPost']['vote_num']) { + $data['Like'] = [ + 'plugin_key' => 'bbses', + 'block_key' => $nc3Blocks['Block']['key'], + 'like_count' => $nc2BbsPost['Nc2BbsPost']['vote_num'], + ]; + } + return $data; } diff --git a/Model/Behavior/Nc2ToNc3BlogBehavior.php b/Model/Behavior/Nc2ToNc3BlogBehavior.php index 518187e..a71f394 100644 --- a/Model/Behavior/Nc2ToNc3BlogBehavior.php +++ b/Model/Behavior/Nc2ToNc3BlogBehavior.php @@ -279,8 +279,16 @@ public function generateNc3BlogEntryData(Model $model, $nc2JournalPost) { 'Block' => [ 'id' => $nc3Blog['Blog']['block_id'], 'key' => $nc3BlockKey - ] + ], ]; + if ($nc2JournalPost['Nc2JournalPost']['vote']) { + $data['Like'] = [ + 'plugin_key' => 'blogs', + 'block_key' => $nc3BlockKey, + 'like_count' => substr_count($nc2JournalPost['Nc2JournalPost']['vote'], '|') + 1, + ]; + } + return $data; } diff --git a/Model/Behavior/Nc2ToNc3CabinetBehavior.php b/Model/Behavior/Nc2ToNc3CabinetBehavior.php index acb72dd..650b9f1 100644 --- a/Model/Behavior/Nc2ToNc3CabinetBehavior.php +++ b/Model/Behavior/Nc2ToNc3CabinetBehavior.php @@ -184,8 +184,8 @@ public function generateNc3CabinetFileData(Model $model, $nc2CabinetFile, $nc2Ca /* @var $Nc2ToNc3User Nc2ToNc3User */ $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); - //ファイルの場合は、ファイルアップロードの準備 if (!$nc2CabinetFile['Nc2CabinetFile']['file_type']) { + //ファイルの場合は、ファイルアップロードの準備 $nc2UploadId = $nc2CabinetFile['Nc2CabinetFile']['upload_id']; $nc2ToNc3Upload = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Upload'); $nc3CabinetFile = $nc2ToNc3Upload->generateUploadFile($nc2UploadId); @@ -209,8 +209,10 @@ public function generateNc3CabinetFileData(Model $model, $nc2CabinetFile, $nc2Ca // キャビネットで更新日をunsetさせない '_is_no_unset_modified' => 1, ]; - //フォルダの場合 + + $data['DownloadCount'] = $nc2CabinetFile['Nc2CabinetFile']['download_num']; } else { + //フォルダの場合 $data['CabinetFile'] = [ 'key' => '', 'is_folder' => $nc2CabinetFile['Nc2CabinetFile']['file_type'], diff --git a/Model/Nc2ToNc3Bbs.php b/Model/Nc2ToNc3Bbs.php index 357c2e6..18de65e 100644 --- a/Model/Nc2ToNc3Bbs.php +++ b/Model/Nc2ToNc3Bbs.php @@ -232,6 +232,7 @@ private function __saveNc3BbsArticleFromNc2($nc2BbsPosts) { $Block = ClassRegistry::init('Blocks.Block'); $Topic = ClassRegistry::init('Topics.Topic'); $BbsArticleTree = ClassRegistry::init('Bbses.BbsArticleTree'); + $Like = ClassRegistry::init('Likes.Like'); foreach ($nc2BbsPosts as $nc2BbsPost) { @@ -265,7 +266,7 @@ private function __saveNc3BbsArticleFromNc2($nc2BbsPosts) { $BbsArticle->validate = []; $BbsArticleTree->validate = []; - if (!$BbsArticle->saveBbsArticle($data)) { + if (!($nc3BbsArticle = $BbsArticle->saveBbsArticle($data))) { // 各プラグインのsave○○にてvalidation error発生時falseが返ってくるがrollbackしていないので、 // ここでrollback $BbsArticle->rollback(); @@ -279,6 +280,11 @@ private function __saveNc3BbsArticleFromNc2($nc2BbsPosts) { $BbsArticle->rollback(); continue; } + if (isset($data['Like'])) { + $data['Like']['content_key'] = $nc3BbsArticle['BbsArticle']['key']; + $Like->create(); + $Like->save($data); + } unset(Current::$permission[$nc3RoomId]['Permission']['content_publishable']['value']); diff --git a/Model/Nc2ToNc3Blog.php b/Model/Nc2ToNc3Blog.php index 222cffd..e27969f 100644 --- a/Model/Nc2ToNc3Blog.php +++ b/Model/Nc2ToNc3Blog.php @@ -298,6 +298,7 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); $Block = ClassRegistry::init('Blocks.Block'); $Topic = ClassRegistry::init('Topics.Topic'); + $Like = ClassRegistry::init('Likes.Like'); foreach ($nc2JournalPosts as $nc2JournalPost) { $BlogEntry->begin(); @@ -333,7 +334,7 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { // @see https://github.com/NetCommons3/Blogs/blob/3.1.0/Model/BlogEntry.php#L138-L141 $BlogEntry->validate = []; - if (!$BlogEntry->saveEntry($data)) { + if (!($nc3BlogEntry = $BlogEntry->saveEntry($data))) { // 各プラグインのsave○○にてvalidation error発生時falseが返ってくるがrollbackしていないので、 // ここでrollback $BlogEntry->rollback(); @@ -348,6 +349,11 @@ private function __saveNc3BlogEntryFromNc2($nc2JournalPosts) { $BlogEntry->rollback(); continue; } + if (isset($data['Like'])) { + $data['Like']['content_key'] = $nc3BlogEntry['BlogEntry']['key']; + $Like->create(); + $Like->save($data); + } unset(Current::$permission[$nc3RoomId]['Permission']['content_publishable']['value']); diff --git a/Model/Nc2ToNc3Cabinet.php b/Model/Nc2ToNc3Cabinet.php index 1975b0b..3fc01c6 100644 --- a/Model/Nc2ToNc3Cabinet.php +++ b/Model/Nc2ToNc3Cabinet.php @@ -207,6 +207,7 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { $BlocksLanguage = ClassRegistry::init('Blocks.BlocksLanguage'); $Block = ClassRegistry::init('Blocks.Block'); $Topic = ClassRegistry::init('Topics.Topic'); + $UploadFile = ClassRegistry::init('Files.UploadFile'); foreach ($nc2CabinetFiles as $nc2CabinetFile) { @@ -232,7 +233,7 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { $CabinetFile->create(); $Block->create(); $Topic->create(); - if (!$CabinetFile->saveFile($data)) { + if (!($nc3CabinetFile = $CabinetFile->saveFile($data))) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。 // var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html @@ -243,6 +244,21 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { $CabinetFile->rollback(); continue; } + $downloadCount = intval($data['DownloadCount'] ?? 0); + if ($downloadCount) { + // DownloadCount更新 + $file = $UploadFile->find('first', [ + 'conditions' => [ + 'plugin_key' => 'cabinets', + 'content_key' => $nc3CabinetFile['CabinetFile']['key'], + 'field_name' => 'file', + ] + ]); + $file['UploadFile']['download_count'] = $downloadCount; + $file['UploadFile']['total_download_count'] = $downloadCount; + $UploadFile->create(); + $UploadFile->save($file, false, false); + } unset(Current::$permission[$nc3RoomId]['Permission']['content_publishable']['value']); From 01114f9d0bf9dfeb604bb76321046ec9019d4a4f Mon Sep 17 00:00:00 2001 From: ryu818 Date: Tue, 21 May 2019 12:32:13 +0900 Subject: [PATCH 13/55] =?UTF-8?q?choice=5Flabel=E3=81=AE=E4=BA=88=E7=B4=84?= =?UTF-8?q?=E6=96=87=E5=AD=97=E3=82=92=E5=8D=8A=E8=A7=92=E5=A4=89=E6=8F=9B?= =?UTF-8?q?/=E6=94=B9=E8=A1=8C=E7=AD=89=E9=99=A4=E5=8E=BB=20https://github?= =?UTF-8?q?.com/researchmap/RmNc3Migrations/issues/123?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Questionnaire.php | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index ff2b8e0..d50655a 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -147,6 +147,7 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { // @see https://github.com/NetCommons3/Questionnaires/blob/3.1.0/Model/Questionnaire.php#L442 // @see https://github.com/NetCommons3/Questionnaires/blob/3.1.0/Model/QuestionnaireSetting.php#L129-L149 $Frame->create(); + $data = $this->__cleansingChoiceText($data); if (!$Questionnaire->saveQuestionnaire($data)) { // 各プラグインのsave○○にてvalidation error発生時falseが返ってくるがrollbackしていないので、 @@ -188,6 +189,41 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { return true; } +/** + * choice_labelの予約文字を半角変換/改行等除去 + * 「:」=>「:」「|」=>「|」 + * + * @param array $data Questionnaireデータ + * @return array + */ + private function __cleansingChoiceText($data) { + if (!isset($data['QuestionnairePage'])) { + return $data; + } + foreach ($data['QuestionnairePage'] as $key => $questionnairePage) { + if (!isset($questionnairePage['QuestionnaireQuestion'])) { + continue; + } + foreach ($questionnairePage['QuestionnaireQuestion'] as $key2 => $questionnaireQuestion) { + if (!isset($questionnaireQuestion['QuestionnaireChoice'])) { + continue; + } + foreach ($questionnaireQuestion['QuestionnaireChoice'] as $key3 => $questionnaireChoice) { + if (isset($questionnaireChoice['choice_label'])) { + $rep = str_replace(':', ':', + $questionnaireChoice['choice_label']); + $rep = str_replace('|', '|', $rep); + // 改行等を除去 + $rep = preg_replace('/[\n\r\t\f\v]+/u', '', $rep); + $data['QuestionnairePage'][$key]['QuestionnaireQuestion'][$key2]['QuestionnaireChoice'][$key3]['choice_label'] + = $rep; + } + } + } + } + return $data; + } + /** * Save QuestionnaireFrameSetting from Nc2. * From b5e451a498afe582f3149443eeb02e2e5c5306e3 Mon Sep 17 00:00:00 2001 From: Withone10 Date: Tue, 21 May 2019 10:56:10 +0900 Subject: [PATCH 14/55] =?UTF-8?q?$PhotoAlbumSetting,$Block=E3=83=A2?= =?UTF-8?q?=E3=83=87=E3=83=AB=E3=81=AE=E5=88=9D=E6=9C=9F=E5=8C=96=E5=87=A6?= =?UTF-8?q?=E7=90=86=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1007 https://github.com/NetCommons3/NetCommons3/issues/1406 https://github.com/NetCommons3/NetCommons3/issues/1414 6c79596 の修正漏れ --- Model/Nc2ToNc3PhotoAlbum.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Model/Nc2ToNc3PhotoAlbum.php b/Model/Nc2ToNc3PhotoAlbum.php index 9fcaa5f..adde098 100644 --- a/Model/Nc2ToNc3PhotoAlbum.php +++ b/Model/Nc2ToNc3PhotoAlbum.php @@ -367,6 +367,8 @@ private function __savePhotoAlbumSetting($nc3RoomId, $nc3PhotoAlbum) { ); if (!$nc3Block) { + $PhotoAlbumSetting->create(false); + $Block->create(false); $data = $PhotoAlbumSetting->createBlockSetting(); if (!$PhotoAlbumSetting->savePhotoAlbumSetting($data)) { return []; From 0d52f490919c8e72e5e5d928333097f2a426d46a Mon Sep 17 00:00:00 2001 From: "noto.yuichi" Date: Tue, 21 May 2019 13:45:01 +0900 Subject: [PATCH 15/55] =?UTF-8?q?=E3=82=AB=E3=83=AC=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=20=E3=83=90=E3=83=AA=E3=83=87=E3=83=BC=E3=82=B7?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=82=89=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rm1.calendar_block.start_posが2,3の場合、rm2.calendar_frame_settings.start_posには0で登録するよう修正 rm1.calendar_block.display_countが空だったら1で登録するよう修正 --- Model/Behavior/Nc2ToNc3CalendarBehavior.php | 33 +++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3CalendarBehavior.php b/Model/Behavior/Nc2ToNc3CalendarBehavior.php index 6d36fdc..199130e 100644 --- a/Model/Behavior/Nc2ToNc3CalendarBehavior.php +++ b/Model/Behavior/Nc2ToNc3CalendarBehavior.php @@ -184,9 +184,18 @@ public function generateNc3CalendarFrameSettingData(Model $model, $nc2CalendarBl /* @var $Nc2ToNc3User Nc2ToNc3User */ $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); + if (empty($nc2CalendarBlock['Nc2CalendarBlock']['display_count'])) { + $nc2CalendarBlock['Nc2CalendarBlock']['display_count'] = 1; + } + // NC3で無効なstart_pos値(2:1月表示、3:4月表示)は0で登録 + $nc3StartPos = $nc2CalendarBlock['Nc2CalendarBlock']['start_pos']; + if ($nc3StartPos==2 || $nc3StartPos==3) { + $nc3StartPos=0; + } + $data = [ 'display_type' => (string)((int)$nc2CalendarBlock['Nc2CalendarBlock']['display_type'] - 1), - 'start_pos' => $nc2CalendarBlock['Nc2CalendarBlock']['start_pos'], + 'start_pos' => $nc3StartPos, 'display_count' => $nc2CalendarBlock['Nc2CalendarBlock']['display_count'], 'is_myroom' => $nc2CalendarBlock['Nc2CalendarBlock']['myroom_flag'], 'is_select_room' => $nc2CalendarBlock['Nc2CalendarBlock']['select_room'], @@ -317,6 +326,26 @@ public function generateNc3CalendarActionPlanData(Model $model, $nc2CalendarPlan $dateFormat = 'Y-m-d'; } + $nc3TimezoneOffset = $this->_convertTimezone($nc2TimezoneOffset); + if ($nc3TimezoneOffset === 'UTC') { + $nc3TimezoneOffset = 'Etc/Greenwich'; + } + if ($nc3TimezoneOffset === 'Europe/Brussels') { + $nc3TimezoneOffset = 'Europe/Amsterdam'; + } + if ($nc3TimezoneOffset === 'Pacific/Honolulu') { + $nc3TimezoneOffset = 'US/Hawaii'; + } + if ($nc3TimezoneOffset === 'America/Chicago') { + $nc3TimezoneOffset = 'US/Central'; + } + if ($nc3TimezoneOffset === 'Asia/Vladivostok') { + $nc3TimezoneOffset = 'Australia/Brisbane'; + } + if ($nc3TimezoneOffset === 'America/New_York') { + $nc3TimezoneOffset = 'US/Eastern'; + } + /* @var $Nc2ToNc3User Nc2ToNc3User */ $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); $data += [ @@ -330,7 +359,7 @@ public function generateNc3CalendarActionPlanData(Model $model, $nc2CalendarPlan 'enable_time' => !$nc2AllDayFlag, 'detail_start_datetime' => date($dateFormat, strtotime($nc2StartTimeFull) + ($nc2TimezoneOffset * 3600)), 'detail_end_datetime' => date($dateFormat, strtotime($nc2EndTimeFull) + ($nc2TimezoneOffset * 3600)), - 'timezone_offset' => $this->_convertTimezone($nc2TimezoneOffset), + 'timezone_offset' => $nc3TimezoneOffset, 'plan_room_id' => $roomMap['Room']['id'], 'location' => $nc2CalendarPDetail['Nc2CalendarPlanDetail']['location'], 'contact' => $nc2CalendarPDetail['Nc2CalendarPlanDetail']['contact'], From 213710d4cc096bb36949561f6b9a24bec7f2b182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E9=87=8E=E9=BE=8D=E5=8F=B8?= Date: Fri, 24 May 2019 13:31:21 +0900 Subject: [PATCH 16/55] =?UTF-8?q?fix:=20RssReader=E3=81=AE=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=A7validationErrors=E5=A2=97=E6=AE=96=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit saveRssReader()のまえでcreate()してなかったためエラーがクリアされてなかった --- Model/Nc2ToNc3RssReader.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Model/Nc2ToNc3RssReader.php b/Model/Nc2ToNc3RssReader.php index 0855644..ef1254b 100644 --- a/Model/Nc2ToNc3RssReader.php +++ b/Model/Nc2ToNc3RssReader.php @@ -107,6 +107,7 @@ private function __saveRssFromNc2($nc2RssBlocks) { $Frame->create(); $BlocksLanguage->create(); + $RssReader->create(); if (!$RssReader->saveRssReader($data)) { // 各プラグインのsave○○にてvalidation error発生時falseが返ってくるがrollbackしていないので、 // ここでrollback From 4e8664fbf4e9d3264059f5c4685a0e95bdba72dc Mon Sep 17 00:00:00 2001 From: "noto.yuichi" Date: Wed, 22 May 2019 14:08:28 +0900 Subject: [PATCH 17/55] =?UTF-8?q?=E3=82=AB=E3=83=AC=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=20rm1.calendar=5Fblock.display=5Ftype=E3=81=8C1?= =?UTF-8?q?=E3=81=AE=E6=99=82=E3=81=AB=E3=83=90=E3=83=AA=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=82=89=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rm1.calendar_block.display_typeが1のデータは、rm2.calendar_frame_settings.display_type=2で移行。 --- Model/Behavior/Nc2ToNc3CalendarBehavior.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Model/Behavior/Nc2ToNc3CalendarBehavior.php b/Model/Behavior/Nc2ToNc3CalendarBehavior.php index 199130e..3e57410 100644 --- a/Model/Behavior/Nc2ToNc3CalendarBehavior.php +++ b/Model/Behavior/Nc2ToNc3CalendarBehavior.php @@ -182,6 +182,12 @@ public function generateNc3CalendarFrameSettingData(Model $model, $nc2CalendarBl return []; } + // rm2.calendar_frame_settings.display_typeは、rm1.calendar_block.display_type -1で登録 + // rm1.calendar_block.display_type=1の場合、rm2.calendar_frame_settings.display_type=2(月表示(拡大))で登録 + $nc3DisplayType = (string)((int)$nc2CalendarBlock['Nc2CalendarBlock']['display_type'] - 1); + if ($nc3DisplayType==='0') { + $nc3DisplayType = (string)CalendarsComponent::CALENDAR_DISP_TYPE_LARGE_MONTHLY; + } /* @var $Nc2ToNc3User Nc2ToNc3User */ $Nc2ToNc3User = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3User'); if (empty($nc2CalendarBlock['Nc2CalendarBlock']['display_count'])) { @@ -194,7 +200,7 @@ public function generateNc3CalendarFrameSettingData(Model $model, $nc2CalendarBl } $data = [ - 'display_type' => (string)((int)$nc2CalendarBlock['Nc2CalendarBlock']['display_type'] - 1), + 'display_type' => $nc3DisplayType, 'start_pos' => $nc3StartPos, 'display_count' => $nc2CalendarBlock['Nc2CalendarBlock']['display_count'], 'is_myroom' => $nc2CalendarBlock['Nc2CalendarBlock']['myroom_flag'], From 0ea8ef09ce40e4c38c43a3fe1ffd90a0673a2792 Mon Sep 17 00:00:00 2001 From: Withone10 Date: Fri, 24 May 2019 13:11:59 +0900 Subject: [PATCH 18/55] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=93=E3=83=8D?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=81=AE=E3=83=95=E3=82=A9=E3=83=AB=E3=83=80?= =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=82=BA=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1408 --- Model/Behavior/Nc2ToNc3CabinetBehavior.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Model/Behavior/Nc2ToNc3CabinetBehavior.php b/Model/Behavior/Nc2ToNc3CabinetBehavior.php index 650b9f1..1183731 100644 --- a/Model/Behavior/Nc2ToNc3CabinetBehavior.php +++ b/Model/Behavior/Nc2ToNc3CabinetBehavior.php @@ -233,7 +233,8 @@ public function generateNc3CabinetFileData(Model $model, $nc2CabinetFile, $nc2Ca 'id' => $Cabinets['Cabinet']['block_id'] ]; $data['CabinetFileTree'] = [ - 'parent_id' => $nc3CabinetFileTreeId + 'cabinet_key' => $Cabinets['Cabinet']['key'], + 'parent_id' => $nc3CabinetFileTreeId, ]; return $data; From 9ad6ba79d17f909ba77166917f57461522b92da3 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Fri, 24 May 2019 13:52:56 +0900 Subject: [PATCH 19/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=AE=5F=5FgetLogArgument=E3=81=8Cblog=E7=94=A8?= =?UTF-8?q?=E3=81=AE=E3=81=BE=E3=81=BE=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Nc2ToNc3MultidatabaseBehavior.php | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php index 7f6beba..9307983 100644 --- a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php @@ -784,24 +784,24 @@ public function generateNc3ContentCommentData(Model $model, $Nc2MultidbComment) /** * Get Log argument. * - * @param array $nc2Journal Array data of Nc2CalendarManage, Nc2CalendarBlock and Nc2CalendarPlan. + * @param array $nc2Multidatabase Array data of Nc2Multidatabase. * @return string Log argument */ - private function __getLogArgument($nc2Journal) { - if (isset($nc2Journal['Nc2Journal'])) { - return 'Nc2Journal ' . - 'journal_id:' . $nc2Journal['Nc2Journal']['journal_id']; - } - - if (isset($nc2Journal['Nc2MultidatabaseBlock'])) { - return 'Nc2MultidatabaseBlock ' . - 'block_id:' . $nc2Journal['Nc2MultidatabaseBlock']['block_id']; - } - - if (isset($nc2Journal['Nc2MultidatabaseContent'])) { - return 'Nc2MultidatabaseContent ' . - 'post_id:' . $nc2Journal['Nc2MultidatabaseContent']['post_id']; - } - } - + private function __getLogArgument($nc2Multidatabase) { + if (isset($nc2Multidatabase['Nc2Multidatabase'])) { + return 'Nc2Multidatabase ' . + 'multidatabase_id:' . $nc2Multidatabase['Nc2Multidatabase']['multidatabase_id'] . + ' room_id:' . $nc2Multidatabase['Nc2Multidatabase']['room_id']; + } + + if (isset($nc2Multidatabase['Nc2MultidatabaseBlock'])) { + return 'Nc2MultidatabaseBlock ' . + 'block_id:' . $nc2Multidatabase['Nc2MultidatabaseBlock']['block_id']; + } + + if (isset($nc2Multidatabase['Nc2MultidatabaseContent'])) { + return 'Nc2MultidatabaseContent ' . + 'post_id:' . $nc2Multidatabase['Nc2MultidatabaseContent']['post_id']; + } + } } From d9de534bf9458ba81e0c878ec439f3a850d06a6b Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Fri, 24 May 2019 13:59:09 +0900 Subject: [PATCH 20/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=A7validationError=E3=81=AE=E3=83=AD=E3=82=B0?= =?UTF-8?q?=E3=81=8C=E9=96=93=E9=81=95=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Multidatabase.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 0eeeb40..6fdd5f4 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -226,7 +226,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($data) . "\n" . - var_export($Multidatabase->validationErrors, true); + var_export($MailSetting->validationErrors, true); $this->writeMigrationLog($message); $Multidatabase->rollback(); continue; @@ -249,7 +249,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($data) . "\n" . - var_export($Multidatabase->validationErrors, true); + var_export($MultidatabaseSetting->validationErrors, true); $this->writeMigrationLog($message); $Multidatabase->rollback(); continue; From 22d8f40a818f4c543404dcfd068916d883df72ed Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Fri, 24 May 2019 14:00:20 +0900 Subject: [PATCH 21/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=A7validationError=E3=81=AE=E3=83=AD=E3=82=B0?= =?UTF-8?q?=E3=81=8C=E9=96=93=E9=81=95=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Multidatabase.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 6fdd5f4..ca2a51f 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -226,7 +226,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($data) . "\n" . - var_export($MailSetting->validationErrors, true); + var_export($MultidatabaseSetting->validationErrors, true); $this->writeMigrationLog($message); $Multidatabase->rollback(); continue; @@ -249,7 +249,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { // print_rはPHPMD.DevelopmentCodeFragmentに引っかかった。var_exportは大丈夫らしい。。。 // @see https://phpmd.org/rules/design.html $message = $this->getLogArgument($data) . "\n" . - var_export($MultidatabaseSetting->validationErrors, true); + var_export($MailSetting->validationErrors, true); $this->writeMigrationLog($message); $Multidatabase->rollback(); continue; From 46dd4fa6e2dd4bb18da00bf54ed759291ff63c98 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Fri, 24 May 2019 14:03:14 +0900 Subject: [PATCH 22/55] =?UTF-8?q?comment:=20=E9=96=93=E9=81=95=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=82=8B=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=EF=BC=88Blog=E3=81=8B=E3=82=89=E3=82=B3=E3=83=94=E3=83=9A?= =?UTF-8?q?=E3=81=97=E3=81=9F=E3=81=A8=E3=81=8D=E3=81=AE=E3=81=BE=E3=81=BE?= =?UTF-8?q?=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=EF=BC=89=E3=81=AE=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Multidatabase.php | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index ca2a51f..1f96718 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -1,6 +1,6 @@ @@ -12,7 +12,7 @@ App::uses('Current', 'NetCommons.Utility'); /** - * Nc2ToNc3Blog + * Nc2ToNc3Multidatabase * * @see Nc2ToNc3BaseBehavior * @method void writeMigrationLog($message) @@ -58,7 +58,7 @@ class Nc2ToNc3Multidatabase extends Nc2ToNc3AppModel { public function migrate() { $this->writeMigrationLog(__d('nc2_to_nc3', 'Multidatabase Migration start.')); - /* @var $Nc2Blog AppModel */ + /* @var $Nc2Multidatabase AppModel */ $Nc2Multidatabase = $this->getNc2Model('multidatabase'); $nc2Multidatabases = $Nc2Multidatabase->find('all'); if (!$this->__saveNc3MultidatabaseFromNc2($nc2Multidatabases)) { @@ -150,8 +150,7 @@ public function migrate() { private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase data Migration start.')); - /* @var $Multidatabase Blog */ - /* @var $Nc2ToNc3Category Nc2ToNc3Category */ + /* @var $Multidatabase Multidatabase */ $Multidatabase = ClassRegistry::init('Multidatabases.Multidatabase'); Current::write('Plugin.key', 'multidatabases'); @@ -272,7 +271,6 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない - // $BlogFrameSetting::savePage()でthrowされるとこの処理に入ってこない $Multidatabase->rollback($ex); throw $ex; } @@ -288,7 +286,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { } /** - * Save BlogFrameSetting from Nc2. + * Save MultidatabaseFrameSetting from Nc2. * * @param array $nc2MultidatabaseBlocks Nc2ournalBlock data. * @return bool True on success @@ -297,8 +295,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks) { $this->writeMigrationLog(__d('nc2_to_nc3', ' MultidatabaseFrameSetting data Migration start.')); - /* @var $MultidbFrameSetting BlogFrameSetting */ - /* @var $Frame Frame */ + /* @var $MultidbFrameSetting MultidatabaseFrameSetting */ $MultidbFrameSetting = ClassRegistry::init('Multidatabases.MultidatabaseFrameSetting'); $Frame = ClassRegistry::init('Frames.Frame'); foreach ($nc2MultidatabaseBlocks as $nc2MultidatabaseBlock) { @@ -345,7 +342,6 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBloc } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない - // $BlogFrameSetting::saveBlogFrameSetting()でthrowされるとこの処理に入ってこない $MultidbFrameSetting->rollback($ex); throw $ex; } @@ -372,8 +368,7 @@ private function __saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBloc private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { $this->writeMigrationLog(__d('nc2_to_nc3', ' MultidatabaseMetadata Migration start.')); - /* @var $MultidbMetadata BlogFrameSetting */ - /* @var $Frame Frame */ + /** @var MultidatabaseMetadata $MultidbMetadata */ $MultidbMetadata = ClassRegistry::init('Multidatabases.MultidatabaseMetadata'); $MultidbMetadata->Behaviors->load('NetCommons.OriginalKey'); @@ -416,7 +411,6 @@ private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない - // $BlogFrameSetting::saveBlogFrameSetting()でthrowされるとこの処理に入ってこない $MultidbMetadata->rollback($ex); throw $ex; } @@ -434,7 +428,7 @@ private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { } /** - * Save BlogEntry from Nc2. + * Save Multidatabase Content from Nc2. * * @param array $nc2MultidbContents Nc2JournalPost data. * @return bool True on success @@ -443,8 +437,7 @@ private function __saveNc3MultidatabaseMetadataFromNc2($nc2Metadata) { private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $this->writeMigrationLog(__d('nc2_to_nc3', ' Multidatabase Content Migration start.')); - /* @var $DbContent BlogEntry */ - /* @var $Nc2ToNc3Category Nc2ToNc3Category */ + /** @var MultidatabaseContent $DbContent */ $DbContent = ClassRegistry::init('Multidatabases.MultidatabaseContent'); Current::write('Plugin.key', 'multidatabases'); @@ -491,9 +484,6 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $nc3Status = $data['MultidatabaseContent']['status']; Current::$permission[$nc3RoomId]['Permission']['content_publishable']['value'] = ($nc3Status != 2); - // Hash::merge で BlogEntry::validate['publish_start']['datetime']['rule']が - // ['datetime','datetime'] になってしまうので初期化 - // @see https://github.com/NetCommons3/Blogs/blob/3.1.0/Model/BlogEntry.php#L138-L141 $DbContent->validate = []; //if (!$DbContent->saveContent($data, false)) { @@ -564,7 +554,6 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { } catch (Exception $ex) { // NetCommonsAppModel::rollback()でthrowされるので、以降の処理は実行されない - // $BlogFrameSetting::savePage()でthrowされるとこの処理に入ってこない $DbContent->rollback($ex); throw $ex; } From 47614c388a3b690de7df7a764a13d58045e2b3c8 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Fri, 24 May 2019 14:03:53 +0900 Subject: [PATCH 23/55] =?UTF-8?q?fix:=20=E3=83=AD=E3=82=B0=E5=87=BA?= =?UTF-8?q?=E5=8A=9B=E3=81=A7=E3=80=8CBlog=20Multidatabase=E3=80=8D?= =?UTF-8?q?=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Multidatabase.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 1f96718..5e6909e 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -281,7 +281,7 @@ private function __saveNc3MultidatabaseFromNc2($nc2Multidatabases) { Current::remove('Room.id'); Current::remove('Plugin.key'); - $this->writeMigrationLog(__d('nc2_to_nc3', ' Blog Multidatabase Migration end.')); + $this->writeMigrationLog(__d('nc2_to_nc3', 'Multidatabase Migration end.')); return true; } From a36ea9df75f6c1794d288e046e8759cd2c95ce72 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Sat, 25 May 2019 09:04:35 +0900 Subject: [PATCH 24/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E3=81=A7?= =?UTF-8?q?=E4=B8=A6=E3=81=B3=E9=A0=86=E3=81=A8=E3=81=97=E3=81=A6=E7=89=B9?= =?UTF-8?q?=E5=AE=9A=E3=81=AE=E3=82=AB=E3=83=A9=E3=83=A0=E3=82=92=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E3=81=97=E3=81=A6=E3=81=82=E3=82=8B=E3=83=95=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=83=A0=E3=81=AE=E4=B8=A6=E3=81=B3=E9=A0=86=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E3=81=8C=E7=A7=BB=E8=A1=8C=E3=81=95=E3=82=8C=E3=81=AA?= =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Nc2ToNc3MultidatabaseBehavior.php | 39 ++++++++++++++++--- Model/Nc2ToNc3Multidatabase.php | 21 +++++----- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php index 9307983..04ad2df 100644 --- a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php @@ -1,6 +1,6 @@ @@ -11,7 +11,7 @@ App::uses('Nc2ToNc3BaseBehavior', 'Nc2ToNc3.Model/Behavior'); /** - * Nc2ToNc3BlogBehavior + * Nc2ToNc3MultidatabaseBehavior * */ @@ -116,7 +116,7 @@ public function generateNc3MultidatabaseData(Model $model, $nc2Multidatabase) { 'Block' => [ 'id' => '', 'room_id' => $nc3RoomId, - 'plugin_key' => 'blogs', + 'plugin_key' => 'multidatabase', 'name' => $nc2Multidatabase['Nc2Multidatabase']['multidatabase_name'], 'public_type' => $nc2Multidatabase['Nc2Multidatabase']['active_flag'], 'created_user' => $nc3CreatedUser, @@ -429,8 +429,15 @@ public function generateNc3MultidatabaseFrameSettingData(Model $model, $nc2Multi case 'vote' : // 投票順  $sortType = '0'; // 指定無しにマッピングしておく break; - case '1': // タイトル順 - $sortType = 'value1'; + default: + // タイトル順 + // default_sortが数字(seq, date, date_asc, vote以外)ならそれは並び順についかいたいカラムのmetadata_id + $metadataId = $nc2MultidatabaseBlock['Nc2MultidatabaseBlock']['default_sort']; + // nc3のmetadata_idを取得 + // nc3のmetadataからcol_noを取得 + // 'value' . col_noを$sort_typeにすればOK + $colNo = $this->__getColNoByNc2MetadataId($metadataId); + $sortType = 'value' . $colNo; break; } @@ -451,6 +458,28 @@ public function generateNc3MultidatabaseFrameSettingData(Model $model, $nc2Multi return $data; } + private function __getColNoByNc2MetadataId($nc2MetadataId) { + // nc3のmetadata_idを取得 + /** @var Nc2ToNc3Map $Nc2ToNc3Map */ + $Nc2ToNc3Map = ClassRegistry::init('Nc2ToNc3.Nc2ToNc3Map'); + $multidbMetadata = ClassRegistry::init('Multidatabases.MultidatabaseMetadata'); + + $mapIdList = $Nc2ToNc3Map->getMapIdList('MultidatabaseMetadata', $nc2MetadataId); + $nc3metadataId = $mapIdList[$nc2MetadataId]; + + // nc3のmetadataからcol_noを取得 + $result = $multidbMetadata->find('first', [ + 'recursive' => -1, + 'callbacks' => false, + 'fields' => ['MultidatabaseMetadata.col_no'], + 'conditions' => [ + 'MultidatabaseMetadata.id' => $nc3metadataId + ] + ]); + + return isset($result['MultidatabaseMetadata']['col_no']) ? $result['MultidatabaseMetadata']['col_no'] : null; + } + /** * NC3 metadataの準備 * diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 5e6909e..80a4e63 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -65,22 +65,23 @@ public function migrate() { return false; } - /* @var $Nc2MultidatabaseBlock AppModel */ + // 先にmetadataを移行しないとframeの移行で並び順カラムを設定できない + $Nc2MultidatabaseMetadata = $this->getNc2Model('multidatabase_metadata'); + // col_noをうめるためにmultidatabase_id + $nc2MultidatabaseMetadatas = $Nc2MultidatabaseMetadata->find('all', [ + 'order' => 'multidatabase_id ASC' + ]); + if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidatabaseMetadatas)) { + return false; + } + + /* @var $Nc2MultidatabaseBlock AppModel */ $Nc2MultidatabaseBlock = $this->getNc2Model('multidatabase_block'); $nc2MultidatabaseBlocks = $Nc2MultidatabaseBlock->find('all'); if (!$this->__saveNc3MultidatabaseFrameSettingFromNc2($nc2MultidatabaseBlocks)) { return false; } - $Nc2MultidatabaseMetadata = $this->getNc2Model('multidatabase_metadata'); - // col_noをうめるためにmultidatabase_id - $nc2MultidatabaseMetadatas = $Nc2MultidatabaseMetadata->find('all', [ - 'order' => 'multidatabase_id ASC' - ]); - if (!$this->__saveNc3MultidatabaseMetadataFromNc2($nc2MultidatabaseMetadatas)) { - return false; - } - $Nc2MultidbContent = $this->getNc2Model('multidatabase_content'); $nc2MultidbContents = $Nc2MultidbContent->find('all', [ 'order' => 'display_sequence' From 459ba5a0e49336a5aa42b94e15fa2c50c6352cb9 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Tue, 2 Jul 2019 12:02:25 +0900 Subject: [PATCH 25/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E3=81=A7?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E8=A8=AD=E5=AE=9A=E3=82=92=E4=B8=80=E5=BA=A6?= =?UTF-8?q?=E3=82=82=E4=BF=9D=E5=AD=98=E3=81=97=E3=81=A6=E3=81=AA=E3=81=84?= =?UTF-8?q?=E3=81=A8=20default=5Fsort=E3=81=8C=E7=A9=BA=E3=81=A7=E3=80=81?= =?UTF-8?q?=E3=81=9D=E3=81=AE=E3=81=BE=E3=81=BE=E7=A7=BB=E8=A1=8C=E4=BA=8B?= =?UTF-8?q?=E9=A0=85=E3=81=99=E3=82=8B=E3=81=A8=E6=B1=8E=E7=94=A8DB?= =?UTF-8?q?=E3=81=8C=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=A7=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=8F=E3=81=AA=E3=82=8B=E3=81=AE?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php index 04ad2df..e66dbe5 100644 --- a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php @@ -429,6 +429,9 @@ public function generateNc3MultidatabaseFrameSettingData(Model $model, $nc2Multi case 'vote' : // 投票順  $sortType = '0'; // 指定無しにマッピングしておく break; + case '': // 空 表示設定未保存時に空文字列になる + $sortType = '0'; // 指定無しにマッピングしておく + break; default: // タイトル順 // default_sortが数字(seq, date, date_asc, vote以外)ならそれは並び順についかいたいカラムのmetadata_id From 4fb2d9174f22223fe82ce283708b177a4a4201ad Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Tue, 2 Jul 2019 14:27:13 +0900 Subject: [PATCH 26/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E3=81=AE?= =?UTF-8?q?=E7=A7=BB=E8=A1=8C=E3=81=A7=E6=B7=BB=E4=BB=98=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=81=AE=E3=81=82=E3=82=8BDB=E3=82=92?= =?UTF-8?q?=E7=A7=BB=E8=A1=8C=E3=81=95=E3=81=9B=E3=82=8B=E3=81=A8Notice?= =?UTF-8?q?=E3=81=8C=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B=E3=81=AE=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Multidatabase.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Model/Nc2ToNc3Multidatabase.php b/Model/Nc2ToNc3Multidatabase.php index 80a4e63..19ed438 100644 --- a/Model/Nc2ToNc3Multidatabase.php +++ b/Model/Nc2ToNc3Multidatabase.php @@ -454,9 +454,13 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $UploadFile = ClassRegistry::init('Files.UploadFile'); $Like = ClassRegistry::init('Likes.Like'); + + // ダミーでuploadの設定をしておく。何もないとAttachmentBehaviorでNotice発生するので + // \AttachmentBehavior::afterSave にファイルの保存等をまかせてるので AttachmentBehaviorをunloadはできない。 + $DbContent->uploadSettings('__dummy'); + foreach ($nc2MultidbContents as $nc2MultidbContent) { $DbContent->begin(); - //$DbContent->Behaviors->disable('Attachment'); try { $data = $this->generateNc3MultidbContent($nc2MultidbContent); @@ -487,8 +491,7 @@ private function __saveNc3MultidbContentFromNc2($nc2MultidbContents) { $DbContent->validate = []; - //if (!$DbContent->saveContent($data, false)) { - if (!$DbContent->save($data, false)) { + if (!$DbContent->save($data, ['validate' => false])) { // 各プラグインのsave○○にてvalidation error発生時falseが返ってくるがrollbackしていないので、 // ここでrollback $DbContent->rollback(); From 7062a3ac5ab34aa7f0a5e722acc364eb1974a901 Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Tue, 2 Jul 2019 14:49:57 +0900 Subject: [PATCH 27/55] =?UTF-8?q?change:=20=E6=B1=8E=E7=94=A8DB=E3=81=AE?= =?UTF-8?q?=E7=A7=BB=E8=A1=8C=E3=81=A7=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E?= =?UTF-8?q?=E3=82=A4=E3=82=BA=E9=A0=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=9F=E3=82=89=E4=BD=9C=E6=88=90=E6=97=A5=E6=99=82=E3=81=AE?= =?UTF-8?q?=E6=98=87=E9=A0=86=E3=81=A7=E7=A7=BB=E8=A1=8C=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4=E3=80=82NC2?= =?UTF-8?q?=E3=81=AE=E6=B1=8E=E7=94=A8DB=E3=81=A7=E3=82=AB=E3=82=B9?= =?UTF-8?q?=E3=82=BF=E3=83=9E=E3=82=A4=E3=82=BA=E9=A0=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=A6=E3=82=82=E6=89=8B=E5=8B=95=E3=81=A7?= =?UTF-8?q?=E4=B8=A6=E3=81=B3=E6=9B=BF=E3=81=88=E3=81=AA=E3=81=84=E3=81=8B?= =?UTF-8?q?=E3=81=8E=E3=82=8A=E3=81=AF=E4=BD=9C=E6=88=90=E6=97=A5=E6=99=82?= =?UTF-8?q?=E3=81=AE=E6=98=87=E9=A0=86=E3=81=AA=E3=81=AE=E3=81=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php index e66dbe5..c1431ee 100644 --- a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php @@ -418,7 +418,11 @@ public function generateNc3MultidatabaseFrameSettingData(Model $model, $nc2Multi switch($nc2MultidatabaseBlock['Nc2MultidatabaseBlock']['default_sort']){ case 'seq': //カスタマイズ順 - $sortType = '0'; // 指定無し にマッピングしておく + case '': // 空 表示設定未保存時に空文字列になる NC2でこれもカスタマイズ順となる + // NC2でデフォルト(カスタマイズ順)のまま汎用DBコンテンツを追加すると、 + // 作成日時順にdisplay_sequenceが設定され、手動で並べ替えない限り作成日時昇順になるので、 + // NC2でカスタマイズ順になっていたら 作成日時の昇順として移行する + $sortType = 'created'; break; case 'date': // 新着順 $sortType = 'created_desc'; // 作成日順 @@ -429,9 +433,6 @@ public function generateNc3MultidatabaseFrameSettingData(Model $model, $nc2Multi case 'vote' : // 投票順  $sortType = '0'; // 指定無しにマッピングしておく break; - case '': // 空 表示設定未保存時に空文字列になる - $sortType = '0'; // 指定無しにマッピングしておく - break; default: // タイトル順 // default_sortが数字(seq, date, date_asc, vote以外)ならそれは並び順についかいたいカラムのmetadata_id From a3bfdaf279f79d409b1c5b5d50ff394e25f6d43d Mon Sep 17 00:00:00 2001 From: Ryuji AMANO Date: Tue, 2 Jul 2019 15:59:51 +0900 Subject: [PATCH 28/55] =?UTF-8?q?fix:=20=E6=B1=8E=E7=94=A8DB=E3=81=AEWYSIW?= =?UTF-8?q?YG=E3=81=AB=E7=94=BB=E5=83=8F=E6=B7=BB=E4=BB=98=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=A6=E3=81=A6=E3=82=82=E7=A7=BB=E8=A1=8C=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=A8=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA?= =?UTF-8?q?=E3=81=8F=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=97=E3=81=BE=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php index e66dbe5..134d161 100644 --- a/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3MultidatabaseBehavior.php @@ -729,8 +729,10 @@ public function generateNc3MultidbContent(Model $model, $nc2MultidbContent) { } - } elseif ($metadata[$nc3MetadataId]['type'] == 'checkbox') { + } elseif ($metadata[$nc3MetadataId]['type'] === 'checkbox') { $data['MultidatabaseContent']['value' . $colNo] = str_replace('|', '||', $nc2metadataContent['Nc2MultidatabaseMetadataContent']['content']); + } elseif ($metadata[$nc3MetadataId]['type'] === 'wysiwyg') { + $data['MultidatabaseContent']['value' . $colNo] = $model->convertWYSIWYG($nc2metadataContent['Nc2MultidatabaseMetadataContent']['content']); } else { $data['MultidatabaseContent']['value' . $colNo] = $nc2metadataContent['Nc2MultidatabaseMetadataContent']['content']; } From 03b0efd5948a548ef3782bf723de9c11e7f27c7a Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Fri, 27 Sep 2019 22:54:13 +0900 Subject: [PATCH 29/55] =?UTF-8?q?bugfix:=20php7=E3=81=AE=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=81=8C=E6=B7=B7=E3=81=96=E3=81=A3=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=81=A7php5=E7=B3=BB=E3=81=AB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Cabinet.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Model/Nc2ToNc3Cabinet.php b/Model/Nc2ToNc3Cabinet.php index 3fc01c6..26977ce 100644 --- a/Model/Nc2ToNc3Cabinet.php +++ b/Model/Nc2ToNc3Cabinet.php @@ -244,7 +244,9 @@ private function __saveNc3CabinetFileNc2($nc2CabinetFiles) { $CabinetFile->rollback(); continue; } - $downloadCount = intval($data['DownloadCount'] ?? 0); + // php7のコードをphp5系に修正 + //$downloadCount = intval($data['DownloadCount'] ?? 0); + $downloadCount = isset($data['DownloadCount']) ? intval($data['DownloadCount']) : 0; if ($downloadCount) { // DownloadCount更新 $file = $UploadFile->find('first', [ From 6c53d48c39f4cdf5e769c4a0c8348ac1d314e255 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Fri, 27 Sep 2019 23:07:20 +0900 Subject: [PATCH 30/55] =?UTF-8?q?test:=20travis-ci=E3=81=AEphp7.2=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8657269..123cdce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,10 @@ php: - 5.6 - 7.0 - 7.1 + - 7.2 sudo: false +dist: trusty env: matrix: From 4725d90b78ce417bed3f88ed497fdd7333c98e45 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Fri, 27 Sep 2019 23:08:04 +0900 Subject: [PATCH 31/55] =?UTF-8?q?test:=20travis=20php7.2=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phpunit.xml.dist | 1 - 1 file changed, 1 deletion(-) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 2d544ba..09ae9f2 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -14,6 +14,5 @@ - From cad10893b0f28a20bf047ad96d5555e6974a5321 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Thu, 3 Oct 2019 11:44:57 +0900 Subject: [PATCH 32/55] =?UTF-8?q?bugfix:=20=E3=82=A6=E3=82=A3=E3=82=B8?= =?UTF-8?q?=E3=82=A6=E3=82=A3=E3=82=B0=E3=81=AE=E3=82=A2=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E3=81=97=E3=81=9F=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E5=90=8D=E3=81=8C=E7=A7=BB=E8=A1=8C=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1527 --- Model/Behavior/Nc2ToNc3WysiwygBehavior.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Model/Behavior/Nc2ToNc3WysiwygBehavior.php b/Model/Behavior/Nc2ToNc3WysiwygBehavior.php index 543dc5c..f2d1855 100644 --- a/Model/Behavior/Nc2ToNc3WysiwygBehavior.php +++ b/Model/Behavior/Nc2ToNc3WysiwygBehavior.php @@ -162,6 +162,9 @@ private function __saveUploadFileFromNc2($nc2UploadId) { // @see https://github.com/NetCommons3/Wysiwyg/blob/3.1.0/Controller/WysiwygFileController.php#L88 // @see https://github.com/NetCommons3/Files/blob/3.1.0/Model/UploadFile.php#L260-L263 $CakeFile = new File($fileData['tmp_name']); + // ウィジウィグのNC2アップロード時ファイル名を移行する + $CakeFile->originalName = $nc2Upload['Nc2Upload']['file_name']; + $data = $UploadFile->registByFile($CakeFile, 'wysiwyg', null, 'Wysiwyg.file', $nc3UploadFile); // Room.idを戻す Current::write('Room.id', $contentRoomId); From efb500c6c0a78fe3d3afdecd5c54de79b781b5b4 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Tue, 10 Mar 2020 09:47:25 +0900 Subject: [PATCH 33/55] =?UTF-8?q?change:=20test:=20travis.yml=E3=81=8B?= =?UTF-8?q?=E3=82=89php5.4,5.5=E3=82=92=E5=89=8A=E9=99=A4=E3=80=82php7.3,7?= =?UTF-8?q?.4=E3=82=92=E8=BF=BD=E5=8A=A0=20https://github.com/NetCommons3/?= =?UTF-8?q?NetCommons3/issues/1560?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 123cdce..fdf60db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,12 @@ language: php php: - - 5.4 - - 5.5 - 5.6 - 7.0 - 7.1 - 7.2 + - 7.3 + - 7.4 sudo: false dist: trusty From 13540e8b32660eda83ee1b225aae65c904dc548b Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Sat, 1 Aug 2020 06:22:47 +0900 Subject: [PATCH 34/55] =?UTF-8?q?change:=20test:=20Travis=E3=81=8B?= =?UTF-8?q?=E3=82=89PHP5.6=E3=82=92=E5=89=8A=E9=99=A4,php72=E4=BB=A5?= =?UTF-8?q?=E9=99=8D=E3=81=A7UnitTest=E3=81=A7Warning=E3=81=8C=E5=87=BA?= =?UTF-8?q?=E3=82=8B=E3=81=9F=E3=82=81=E4=BF=AE=E6=AD=A3=20https://github.?= =?UTF-8?q?com/NetCommons3/NetCommons3/issues/1588?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 1 - phpunit.xml.dist | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fdf60db..7507e0a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: php php: - - 5.6 - 7.0 - 7.1 - 7.2 diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 09ae9f2..59e61c4 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,5 +1,11 @@ + + + + + + app/Plugin/Nc2ToNc3 From 83309bc0a716db292e9436a6dcd2fea069075cf7 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 19 Oct 2020 10:55:35 +0900 Subject: [PATCH 35/55] =?UTF-8?q?fix=20:=20NC3=E7=A7=BB=E8=A1=8C=E3=83=84?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=81=A7=E6=8E=B2=E7=A4=BA=E6=9D=BF=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E6=8A=95=E7=A8=BF=E8=80=85=E3=81=8C?= =?UTF-8?q?=E3=81=99=E3=81=B9=E3=81=A6=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=80=85=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=97=E3=81=BE=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs: NetCommons3/#1166 --- Model/Behavior/Nc2ToNc3BbsBehavior.php | 11 +++- Model/Behavior/Nc2ToNc3UserBaseBehavior.php | 57 +++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3BbsBehavior.php b/Model/Behavior/Nc2ToNc3BbsBehavior.php index 5a30913..eabaa67 100644 --- a/Model/Behavior/Nc2ToNc3BbsBehavior.php +++ b/Model/Behavior/Nc2ToNc3BbsBehavior.php @@ -170,6 +170,7 @@ public function generateNc3BbsData(Model $model, $nc2Bbs, $nc2BbsBlock, $nc3Room * @param array $nc2BbsPost Nc2BbsPost data. * @param array $nc2BbsPostBody Nc2BbsPostBody data. * @return array Nc3BbsArticle data. + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function generateNc3BbsArticleData(Model $model, $nc2BbsPost, $nc2BbsPostBody) { @@ -219,7 +220,8 @@ public function generateNc3BbsArticleData(Model $model, $nc2BbsPost, $nc2BbsPost //現時点でのBbsArticleTreeでのroot_idごとのarticle_no最大値を取得して、1インクリメントする。 //ただし、root_idのみのときは、root_idがnullのもの(article_noは1)しかなく取得できないため、'2'とする $BbsArticleTree = ClassRegistry::init('Bbses.BbsArticleTree'); - $BbsArticleTrees = $BbsArticleTree->findByRootId($nc3BbsRootId, array("fields" => "MAX(article_no) as max_article_no")); + $BbsArticleTrees = $BbsArticleTree->findByRootId( + $nc3BbsRootId, array("fields" => "MAX(article_no) as max_article_no")); if (!$BbsArticleTrees[0]['max_article_no']) { $nc3BbsArticleNo = '2'; } else { @@ -247,6 +249,7 @@ public function generateNc3BbsArticleData(Model $model, $nc2BbsPost, $nc2BbsPost 'title_icon' => $this->_convertTitleIcon($nc2BbsPost['Nc2BbsPost']['icon_name']), // 新着用に更新日を移行 // @see https://github.com/NetCommons3/Topics/blob/3.1.0/Model/Behavior/TopicsBaseBehavior.php#L146 + 'modified_user' => $Nc2ToNc3User->getModifiedUser($nc2BbsPost['Nc2BbsPost']), 'modified' => $this->_convertDate($nc2BbsPost['Nc2BbsPost']['update_time']), ], 'Bbs' => [ @@ -264,7 +267,11 @@ public function generateNc3BbsArticleData(Model $model, $nc2BbsPost, $nc2BbsPost 'bbs_article_key' => '', 'root_id' => $nc3BbsRootId, 'parent_id' => $nc3BbsParentId, - 'article_no' => $nc3BbsArticleNo + 'article_no' => $nc3BbsArticleNo, + 'created_user' => $Nc2ToNc3User->getCreatedUser($nc2BbsPost['Nc2BbsPost']), + 'created' => $this->_convertDate($nc2BbsPost['Nc2BbsPost']['insert_time']), + 'modified_user' => $Nc2ToNc3User->getModifiedUser($nc2BbsPost['Nc2BbsPost']), + 'modified' => $this->_convertDate($nc2BbsPost['Nc2BbsPost']['update_time']), ], ]; if ($nc2BbsPost['Nc2BbsPost']['vote_num']) { diff --git a/Model/Behavior/Nc2ToNc3UserBaseBehavior.php b/Model/Behavior/Nc2ToNc3UserBaseBehavior.php index be1ed8f..333baab 100644 --- a/Model/Behavior/Nc2ToNc3UserBaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3UserBaseBehavior.php @@ -26,6 +26,16 @@ class Nc2ToNc3UserBaseBehavior extends Nc2ToNc3BaseBehavior { public function getCreatedUser(Model $model, $nc2Data) { return $this->_getCreatedUser($nc2Data); } +/** + * Get Nc3 modified_uer. + * + * @param Model $model Model using this behavior. + * @param array $nc2Data Nc2 data having insert_user_id and insert_user_name + * @return string Nc3 created_uer. + */ + public function getModifiedUser(Model $model, $nc2Data) { + return $this->_getModifiedUser($nc2Data); + } /** * Get map @@ -114,6 +124,53 @@ protected function _getCreatedUser($nc2Data) { ]; $this->_saveMap('User', $idMap); + return $User->id; + } +/** + * Get Nc3 modified_uer. + * + * @param array $nc2Data Nc2 data having update_user_id and update_user_name + * @return string Nc3 updated_user. + */ + protected function _getModifiedUser($nc2Data) { + $nc2UserId = $nc2Data['update_user_id']; + if (!$nc2UserId) { + return null; + } + + $map = $this->_getMap($nc2UserId); + if ($map) { + return $map['User']['id']; + } + + /* @var $User User */ + $User = ClassRegistry::init('Users.User'); + $saveOptions = [ + 'validate' => false, + 'fieldList' => [ + 'handlename', + 'is_deleted', + 'created_user', + 'created', + 'modified_user', + 'modified', + ], + 'callbacks' => false, + ]; + $data = [ + 'User' => [ + 'handlename' => $nc2Data['update_user_name'], + 'is_deleted' => '1', + ] + ]; + $User->create($data); + $User->save($data, $saveOptions); + + $idMap = [ + $nc2UserId => $User->id + ]; + $this->_saveMap('User', $idMap); + return $User->id; } From b5f8b1f024a87e299a88d6cfdc8e687e45c522ea Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 14 Dec 2020 09:25:00 +0000 Subject: [PATCH 36/55] =?UTF-8?q?fix:=20=E5=B0=8F=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=E7=A7=BB=E8=A1=8C=E3=81=A7Wysiwyg=E3=81=A7=E5=9F=8B?= =?UTF-8?q?=E3=82=81=E8=BE=BC=E3=82=93=E3=81=A7=E3=81=84=E3=82=8B=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AEupload=5Ffiles=E3=83=86?= =?UTF-8?q?=E3=83=BC=E3=83=96=E3=83=AB=E3=81=AE=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E6=83=85=E5=A0=B1=E3=81=8C=E6=AD=A3=E3=81=97=E3=81=8F?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Quiz.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Model/Nc2ToNc3Quiz.php b/Model/Nc2ToNc3Quiz.php index 44f7c4e..2f785fa 100644 --- a/Model/Nc2ToNc3Quiz.php +++ b/Model/Nc2ToNc3Quiz.php @@ -437,12 +437,17 @@ private function __setCurrentData($nc2QBlock) { if (!isset($frameMap['Frame']['block_id'])) { return false; } + // Block情報も必要 上のFrame.block_idで存在は確かなので戻り値チェックはしない + $Block = ClassRegistry::init('Blocks.Block'); + $nc3Block = $Block->findById($frameMap['Frame']['block_id'], null, null, -1); $nc3RoomId = $frameMap['Frame']['room_id']; Current::write('Frame.key', $frameMap['Frame']['key']); Current::write('Frame.room_id', $nc3RoomId); Current::write('Frame.plugin_key', 'quizzes'); Current::write('Frame.block_id', $frameMap['Frame']['block_id']); + // CurrentにBlock情報も追加 + Current::write('Block', $nc3Block['Block']); // QuizFrameDisplayQuiz::validates に引っかかる。is_ativeも条件になり、一時保存データが取得できないので、content_editableもtrue // Questionnaireはvalidateしてない。いいのか? @@ -476,6 +481,7 @@ private function __unSetCurrentData() { Current::remove('Frame.Block.id'); Current::remove('Plugin.key'); Current::remove('Room.id'); + Current::remove('Block'); // Fatal error: Attempt to unset static property が発生。keyを指定した場合は発生しない。なんで? //unset(Current::$permission); From 85d08f3463ff2bd871e25a92e38483a8cdbcd87d Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 14 Dec 2020 09:36:10 +0000 Subject: [PATCH 37/55] =?UTF-8?q?fix:=20=E5=9B=9E=E8=A6=A7=E6=9D=BF?= =?UTF-8?q?=E3=81=AE=E7=A7=BB=E8=A1=8C=E3=81=A7Wysiwyg=E4=B8=AD=E3=81=AE?= =?UTF-8?q?=E5=BC=B5=E3=82=8A=E4=BB=98=E3=81=91=E3=82=89=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E7=94=BB=E5=83=8F=E3=83=BB=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E3=81=8C=E7=A7=BB=E8=A1=8C=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit convertWysiwyg関数を正しく使用するように修正 --- Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php | 4 ++-- Model/Nc2ToNc3CircularNotice.php | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php b/Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php index 1ef32ec..89b599e 100644 --- a/Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php +++ b/Model/Behavior/Nc2ToNc3CircularNoticeBehavior.php @@ -188,7 +188,7 @@ public function generateNc3CircularNoticeContentData(Model $model, $nc2Circular) 'is_active' => '1', 'is_latest' => '1', 'subject' => $nc2Circular['Nc2Circular']['circular_subject'], - 'content' => $this->_convertWYSIWYG($nc2Circular['Nc2Circular']['circular_body']), + 'content' => $model->convertWYSIWYG($nc2Circular['Nc2Circular']['circular_body']), 'reply_type' => $nc3ReplyType, //'is_room_target' => 'is_room_target' => '1', @@ -226,4 +226,4 @@ private function __getLogArgument($nc2Circular) { 'circular_id:' . $nc2Circular['Nc2Circular']['circular_id']; } } -} \ No newline at end of file +} diff --git a/Model/Nc2ToNc3CircularNotice.php b/Model/Nc2ToNc3CircularNotice.php index 44302d0..81ca176 100644 --- a/Model/Nc2ToNc3CircularNotice.php +++ b/Model/Nc2ToNc3CircularNotice.php @@ -43,7 +43,10 @@ class Nc2ToNc3CircularNotice extends Nc2ToNc3AppModel { * @var array * @link http://book.cakephp.org/2.0/en/models/behaviors.html#using-behaviors */ - public $actsAs = ['Nc2ToNc3.Nc2ToNc3CircularNotice']; + public $actsAs = [ + 'Nc2ToNc3.Nc2ToNc3CircularNotice', + 'Nc2ToNc3.Nc2ToNc3Wysiwyg', + ]; /** * Migration method. From daee8d0a652fc52099747fa211c87f2b18f79995 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 14 Dec 2020 09:40:38 +0000 Subject: [PATCH 38/55] =?UTF-8?q?fix:=20=E6=96=BD=E8=A8=AD=E4=BA=88?= =?UTF-8?q?=E7=B4=84=E3=81=AE=E7=A7=BB=E8=A1=8C=E3=81=A7Wysiwyg=E4=B8=AD?= =?UTF-8?q?=E3=81=AE=E5=BC=B5=E3=82=8A=E4=BB=98=E3=81=91=E3=82=89=E3=82=8C?= =?UTF-8?q?=E3=81=9F=E7=94=BB=E5=83=8F=E3=83=BB=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=8C=E7=A7=BB=E8=A1=8C=E3=81=95=E3=82=8C=E3=81=AA?= =?UTF-8?q?=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit convertWysiwyg関数を正しく使用するように修正 --- Model/Nc2ToNc3Reservation.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Model/Nc2ToNc3Reservation.php b/Model/Nc2ToNc3Reservation.php index 6e51cd5..3be76f7 100644 --- a/Model/Nc2ToNc3Reservation.php +++ b/Model/Nc2ToNc3Reservation.php @@ -334,7 +334,7 @@ protected function _generateNc3ReservationLocation($nc2Record) { 'language_id' => $this->getLanguageIdFromNc2(), 'category_id' => $categoryId, 'location_name' => $nc2Record['Nc2ReservationLocation']['location_name'], - 'detail' => $detail['Nc2ReservationLocationDetail']['description'], + 'detail' => $this->convertWYSIWYG($detail['Nc2ReservationLocationDetail']['description']), 'add_authority' => 0, // NC3では未使用 'time_table' => $this->_convertTimeTable($nc2Record['Nc2ReservationLocation']['time_table']), 'start_time' => $this->_convertLocationTime($nc2Record['Nc2ReservationLocation']['start_time']), @@ -742,7 +742,7 @@ protected function _generateNc3ReservationEvent($nc2Record) { 'title_icon' => $titleiCon, 'location' => '', 'contact' => $contact, - 'description' => $description, + 'description' => $this->convertWYSIWYG($description), 'is_allday' => $nc2Record['Nc2ReservationReserve']['allday_flag'], 'start_date' => $nc2Record['Nc2ReservationReserve']['start_date'], 'start_time' => $nc2Record['Nc2ReservationReserve']['start_time'], From 2cc82d392f43e0270b4edf98f4dc091a9dd3d871 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 14 Dec 2020 09:45:15 +0000 Subject: [PATCH 39/55] =?UTF-8?q?fix=20:=20=E3=82=A2=E3=83=B3=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=83=88=E7=A7=BB=E8=A1=8C=E3=81=A7Wysiwyg=E3=81=AB?= =?UTF-8?q?=E5=9F=8B=E3=82=81=E8=BE=BC=E3=82=93=E3=81=A7=E3=81=84=E3=82=8B?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AEupload=5Ffiles?= =?UTF-8?q?=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB=E3=81=AE=E3=83=96=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=82=AF=E6=83=85=E5=A0=B1=E3=81=8C=E6=AD=A3=E3=81=97?= =?UTF-8?q?=E3=81=8F=E8=A8=AD=E5=AE=9A=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Nc2ToNc3Questionnaire.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Model/Nc2ToNc3Questionnaire.php b/Model/Nc2ToNc3Questionnaire.php index d50655a..3b2241c 100644 --- a/Model/Nc2ToNc3Questionnaire.php +++ b/Model/Nc2ToNc3Questionnaire.php @@ -142,6 +142,9 @@ private function __saveQuestionnaireFromNc2($nc2Questionnaires) { $Questionnaire->rollback(); continue; } + + // 画像保存の時にBlockが必要なので + $data['Block'] = Current::read('Block'); // Model::idを初期化しないとUpdateになってしまう。 // @see https://github.com/NetCommons3/Questionnaires/blob/3.1.0/Model/Questionnaire.php#L442 @@ -467,11 +470,17 @@ private function __setCurrentData($nc2QBlock) { if (!$frameMap) { return false; } + // Block情報も必要 上のFrame.block_idで存在は確かなので戻り値チェックはしない + $Block = ClassRegistry::init('Blocks.Block'); + $nc3Block = $Block->findById($frameMap['Frame']['block_id'], null, null, -1); + $nc3RoomId = $frameMap['Frame']['room_id']; Current::write('Frame.key', $frameMap['Frame']['key']); Current::write('Frame.room_id', $nc3RoomId); Current::write('Frame.plugin_key', 'questionnaires'); Current::write('Frame.block_id', $frameMap['Frame']['block_id']); + // CurrentにBlock情報も追加 + Current::write('Block', $nc3Block['Block']); // @see https://github.com/NetCommons3/Topics/blob/3.1.0/Model/Behavior/TopicsBaseBehavior.php#L347 Current::write('Plugin.key', 'questionnaires'); @@ -496,6 +505,7 @@ private function __unSetCurrentData() { Current::remove('Frame.block_id'); Current::remove('Plugin.key'); Current::remove('Room.id'); + Current::remove('Block'); // Fatal error: Attempt to unset static property が発生。keyを指定した場合は発生しない。なんで? //unset(Current::$permission); From 4313f78c0b34fd04b9fd3609def3220ef8c42d8c Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Mon, 14 Dec 2020 09:48:23 +0000 Subject: [PATCH 40/55] =?UTF-8?q?fix:=20=E8=A4=87=E6=95=B0=E3=81=AE?= =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3=E3=82=92=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=99=E3=82=8B=E3=81=A8=E3=81=8D=E3=81=AB=E5=89=8D?= =?UTF-8?q?=E3=81=AB=E5=87=A6=E7=90=86=E3=81=97=E3=81=9F=E3=83=96=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=82=AF=E6=83=85=E5=A0=B1=E3=81=8C=E5=BE=8C=E3=81=8B?= =?UTF-8?q?=E3=82=89=E5=87=A6=E7=90=86=E3=81=99=E3=82=8B=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=AE=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E6=83=85=E5=A0=B1=E3=81=A8=E3=81=97=E3=81=A6=E3=82=B3?= =?UTF-8?q?=E3=83=B3=E3=82=BF=E3=83=9F=E3=81=99=E3=82=8B=E3=81=93=E3=81=A8?= =?UTF-8?q?=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 必ず次のプラグインの処理前にブロックモデルとフレームモデルのインスタンスをクリアする --- Model/Nc2ToNc3.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Model/Nc2ToNc3.php b/Model/Nc2ToNc3.php index 4785626..2cfacf0 100644 --- a/Model/Nc2ToNc3.php +++ b/Model/Nc2ToNc3.php @@ -264,6 +264,12 @@ public function migration($data) { ]; $excludePlugins = explode(',', $this->data['Nc2ToNc3']['exclude']); foreach ($migrationModelNames as $migrationModelName) { + //前回処理のプラグインのデータが残存することを防ぐ + $Block = ClassRegistry::init('Blocks.Block'); + $Frame = ClassRegistry::init('Frames.Frame'); + $Block->clear(); + $Frame->clear(); + if (in_array(substr($migrationModelName, 8), $excludePlugins, true)) { continue; } From 9823c17ef2c2a30cd0ae47d06dcd9e55acfad0b5 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Sat, 23 Jan 2021 14:00:08 +0900 Subject: [PATCH 41/55] =?UTF-8?q?add:=20release=E3=82=BF=E3=82=B0=E4=BB=98?= =?UTF-8?q?=E3=81=91=E3=81=AEgithub=20action=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1619 --- .github/workflows/release.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a3225bc --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,28 @@ +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - '3*' + +name: Create Release + +jobs: + build: + name: Create Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body: | + NetCommons ${{ github.ref }} released. + draft: false + prerelease: false From f42aaca898abb07feeef7c7e3f93652ade5dbdb2 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Sat, 23 Jan 2021 14:00:14 +0900 Subject: [PATCH 42/55] change: Version number to 3.3.3 --- VERSION.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 VERSION.txt diff --git a/VERSION.txt b/VERSION.txt new file mode 100644 index 0000000..619b537 --- /dev/null +++ b/VERSION.txt @@ -0,0 +1 @@ +3.3.3 From 8743f26647c769dde54a5ea292bb05806618fb72 Mon Sep 17 00:00:00 2001 From: Shohei Nakajima Date: Mon, 22 Feb 2021 11:50:23 +0900 Subject: [PATCH 43/55] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff3e447..1310cb6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ NC2最新版(2.4.2.1)からNC3最新版に移行します。 NC2が最新版でなかったら、最新版2.4.2.1にアップデートします。 -[NC2を最新版2.4.2.1にアップデート(外部リンク)](https://nc2.netcommons.org/ダウンロード/コアパッケージ/) +[NC2を最新版2.4.2.1にアップデート(外部リンク)](https://github.com/netcommons/NetCommons2/releases) #### NC2の準備 From 304a5825f36dccba1bf87e0342f6098d4c5c7802 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Fri, 11 Jun 2021 17:17:51 +0900 Subject: [PATCH 44/55] refs: NetCommons3/NetCommons3/issues/1646 --- Model/Behavior/Nc2ToNc3PageBaseBehavior.php | 16 ++++++++++++++++ Model/Nc2ToNc3Page.php | 2 +- Model/Nc2ToNc3User.php | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Model/Behavior/Nc2ToNc3PageBaseBehavior.php b/Model/Behavior/Nc2ToNc3PageBaseBehavior.php index 502fb32..0842093 100644 --- a/Model/Behavior/Nc2ToNc3PageBaseBehavior.php +++ b/Model/Behavior/Nc2ToNc3PageBaseBehavior.php @@ -43,6 +43,22 @@ public function convertPermalink(Model $model, $nc2Permalink) { return $this->_convertPermalink($nc2Permalink); } +/** + * Convert Nc2 permalink to Nc3Page slug. + * + * @param Model $model Model using this behavior. + * @param string $nc2Permalink Nc2Item data. + * @return string Converted Nc2Page permalink. + */ + public function getConvertSlug(Model $model, $nc2Permalink) { + $permalink = $this->_convertPermalink($nc2Permalink); + $pos = strrpos($permalink, '/'); + if ($pos === false) { + return $permalink; + } + return substr($permalink, strrpos($permalink, DS) + 1); + } + /** * Get map * diff --git a/Model/Nc2ToNc3Page.php b/Model/Nc2ToNc3Page.php index 8133a23..05c9e35 100644 --- a/Model/Nc2ToNc3Page.php +++ b/Model/Nc2ToNc3Page.php @@ -309,7 +309,7 @@ private function __generateNc3Page($nc2Page, $nc3Page) { 'room_id' => $roomMap['Room']['id'], 'root_id' => $this->getNc3RootId($nc2Page, $roomMap), 'parent_id' => $map['Page']['id'], - 'slug' => $this->convertPermalink($nc2Page['Nc2Page']['permalink']), + 'slug' => $this->getConvertSlug($nc2Page['Nc2Page']['permalink']), ], 'Room' => [ 'id' => $roomMap['Room']['id'], diff --git a/Model/Nc2ToNc3User.php b/Model/Nc2ToNc3User.php index def0be3..3cff994 100644 --- a/Model/Nc2ToNc3User.php +++ b/Model/Nc2ToNc3User.php @@ -615,7 +615,7 @@ private function __saveRoomAndPageFromNc2($nc2User, $nc3UserId) { // Page.slugに設定すれば良い? // @see https://github.com/NetCommons3/Pages/blob/3.0.1/Controller/PagesEditController.php#L151 // @see https://github.com/NetCommons3/Pages/blob/3.0.1/Model/Behavior/PageSaveBehavior.php#L49-L68 - $nc3Page['Page']['slug'] = $Nc2ToNc3Page->convertPermalink($nc2Page['Nc2Page']['permalink']); + $nc3Page['Page']['slug'] = $Nc2ToNc3Page->getConvertSlug($nc2Page['Nc2Page']['permalink']); unset($nc3Page['Page']['theme']); // themeのvalidationに引っかかる if (!$Page->savePage($nc3Page)) { From ecff246e5a4831301bfd13dacbfc03001e272d66 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Sat, 31 Jul 2021 10:47:02 +0900 Subject: [PATCH 45/55] =?UTF-8?q?change:=20test:=20TravisCI=E3=81=8B?= =?UTF-8?q?=E3=82=89GithubAction=E3=81=AB=E5=A4=89=E6=9B=B4=20https://gith?= =?UTF-8?q?ub.com/NetCommons3/NetCommons3/issues/1650?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 137 ++++++++++++++++++++++++++++++++++++ .travis.yml | 41 ----------- README.md | 7 +- phpunit.xml.dist | 4 +- 4 files changed, 141 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/tests.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..d6bd01e --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,137 @@ +on: + push: + branches: + - main + - master + - availability + pull_request: + branches: + - main + - master + - availability + +name: tests + +jobs: + tests: + name: tests + runs-on: ubuntu-18.04 + strategy: + matrix: + php: [ '7.1', '7.2', '7.3', '7.4' ] + + env: + NC3_BUILD_DIR: "/opt/nc3" + NC3_DOCKER_DIR: "/opt/docker" + NC3_GIT_URL: "git://github.com/NetCommons3/NetCommons3.git" + NC3_GIT_BRANCH: "master" + PLUGIN_BUILD_DIR: ${{ github.workspace }} + PHP_VERSION: ${{ matrix.php }} + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: cakephp_test + + steps: + - uses: actions/checkout@v2 + + - name: environment + run: | + echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" + echo "PLUGIN_BUILD_DIR=${PLUGIN_BUILD_DIR}" + echo "PHP_VERSION=${PHP_VERSION}" + ls -al ${PLUGIN_BUILD_DIR} + + - name: docker-compose install + run: | + curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + chmod +x ~/docker-compose + sudo mv ~/docker-compose /usr/local/bin/docker-compose + docker-compose --version + + - name: git clone nc3 + run: git clone -b ${NC3_GIT_BRANCH} ${NC3_GIT_URL} ${NC3_BUILD_DIR} + + - name: git clone nc3_docker + run: git clone https://github.com/NetCommons3/nc3app-docker.git ${NC3_DOCKER_DIR} + + - name: docker-compose start + run: | + cd ${NC3_DOCKER_DIR} + docker-compose up -d + docker-compose start + + - run: docker ps + + - name: check libraries + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/start-on-docker.sh + + - name: nc3 build + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/app-build.sh + + - name: phpcs (PHP CodeSniffer) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh + + - name: phpmd (PHP Mess Detector) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh + + - name: phpcpd (PHP Copy/Paste Detector) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpcpd.sh + + - name: gjslint (JavaScript Style Check) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/gjslint.sh + + - name: phpdoc (PHP Documentor) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh + + - name: phpunit (PHP UnitTest) + run: | + cd ${NC3_DOCKER_DIR} + docker-compose exec -T nc3app bash /opt/scripts/phpunit.sh + sudo -s chmod a+w -R ${NC3_BUILD_DIR}/build + + - name: push coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COVERALLS_FLAG_NAME: ${{ matrix.php }} + run: | + cd ${NC3_BUILD_DIR} + ls -la ${NC3_BUILD_DIR} + vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v + + - name: docker-compose remove + run: | + cd ${NC3_DOCKER_DIR} + docker-compose rm -f + + # テスト成功時はこちらのステップが実行される + - name: Slack Notification on Success + if: success() + uses: rtCamp/action-slack-notify@v2.2.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: notify-netcommons3 + SLACK_TITLE: "${{ github.repository }}(${{ matrix.php }})" + SLACK_COLOR: good + + # テスト失敗時はこちらのステップが実行される + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2.2.0 + if: failure() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: notify-netcommons3 + SLACK_TITLE: "${{ github.repository }}(${{ matrix.php }})" + SLACK_COLOR: danger diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7507e0a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,41 +0,0 @@ -language: php - -php: - - 7.0 - - 7.1 - - 7.2 - - 7.3 - - 7.4 - -sudo: false -dist: trusty - -env: - matrix: - - NETCOMMONS_VERSION=master DB=mysql - global: - - secure: "DSLI4W7coyeEeUjfmhOAw5aIiRYA5KutfEz25oYDCtpMlVn/JhLLz/38EZO+XPKr0IF0n4O8PM0nhBicX2/WUmIV6sMNe17pRQ40WaglLmtagQUtOqZYZNwp0OX7wrXtxlW/x33oj1iKaITCjq9fi+VTVVGB18yewL/nUhew/iN5TMM3lcGzYc2bqXmJxt3t3nyTlHPaE33GT2YVIVm/nx+zI+ghLO40MAEjkJx1qkj8y/0n/gsjhx9rXy01YOHiPlL0NkBYrFbG1BkEBtydxJmjyXXuef1hpBeQmrlb1M1gSDVNJSNsFcRVWM9cUikgkCAjswmidaZpaNVNPIb71qKCCplRncFz2UziY89J6UqF3uMTpLPrX3A+Re0J3AbSZHx0K9eOLkCiu0S2Z1mhahXJZByclN0RXP7fP9trys/dLG8kis0ZvoACN3vU2PkT829uzWwR3SskoPL3P4VGWAUt5Cy9p7UIFjUFlTxFqqYhIk3bQT0bhRzR02Zt/azfDXEIYadtI7drlHtN8RFvnkiu+2uSGcvQh7LTCXIoBS00gYQ7qn+HWpbp4eiD4chsNXeOOufywpg7RRc4ATJ6JVlW1o2rSX3VR7LiJonr+eTqAV0qi/C5a1J11BaUYmDkDMq/YdknIsxjCYjgkBemAfZbk8R/qMYgEENLPPgiY5s=" - - GIT_COMMITTER_NAME=akagane99 - - GIT_COMMITTER_EMAIL=akagane99@gmail.com - - GIT_AUTHOR_NAME=akagane99 - - GIT_AUTHOR_EMAIL=akagane99@gmail.com - -before_script: - - export NETCOMMONS_BUILD_DIR=`dirname $TRAVIS_BUILD_DIR`/NetCommons3 - - git clone git://github.com/NetCommons3/NetCommons3 $NETCOMMONS_BUILD_DIR - - cd $NETCOMMONS_BUILD_DIR - - git checkout $NETCOMMONS_VERSION - - . tools/build/plugins/cakephp/travis/pre.sh - -script: - - travis_wait . tools/build/plugins/cakephp/travis/main.sh - -after_script: - - . tools/build/plugins/cakephp/travis/post.sh - -notifications: - email: - recipients: - - netcommons3@googlegroups.com - on_success: never # default: change - on_failure: always # default: always diff --git a/README.md b/README.md index 1310cb6..7017b67 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ Nc2ToNc3 ============== -Migration plugin to Nc3 from Nc2 for NetComomns3 - -[![Build Status](https://travis-ci.org/NetCommons3/Nc2ToNc3.svg?branch=master)](https://travis-ci.org/NetCommons3/Nc2ToNc3) -[![Coverage Status](https://img.shields.io/coveralls/NetCommons3/Nc2ToNc3.svg)](https://coveralls.io/github/NetCommons3/Nc2ToNc3) +[![Tests Status](https://github.com/NetCommons3/Nc2ToNc3/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/NetCommons3/Nc2ToNc3/actions/workflows/tests.yml) +[![Coverage Status](https://coveralls.io/repos/NetCommons3/Nc2ToNc3/badge.svg?branch=master)](https://coveralls.io/r/NetCommons3/Nc2ToNc3?branch=master) +[![Stable Version](https://img.shields.io/packagist/v/netcommons/nc2-to-nc3.svg?label=stable)](https://packagist.org/packages/netcommons/nc2-to-nc3) Nc2ToNc3(移行ツール)は、同一サーバにNC2のデータとNC3サイトを用意して移行するプラグインです。 NC2最新版(2.4.2.1)からNC3最新版に移行します。 diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 59e61c4..ac0b31d 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -3,9 +3,6 @@ - - - app/Plugin/Nc2ToNc3 @@ -20,5 +17,6 @@ + From 793b3c9a8f697004e43ea53f364266ee5210c4e3 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Thu, 5 Aug 2021 15:57:46 +0900 Subject: [PATCH 46/55] refs : /NetCommons3/NetCommons3/issue/1025 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 掲示板記事データ移行時にCurrentにBlockIdが設定されていないため新着に出ない --- Model/Nc2ToNc3Bbs.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Model/Nc2ToNc3Bbs.php b/Model/Nc2ToNc3Bbs.php index 18de65e..2d057e6 100644 --- a/Model/Nc2ToNc3Bbs.php +++ b/Model/Nc2ToNc3Bbs.php @@ -248,6 +248,9 @@ private function __saveNc3BbsArticleFromNc2($nc2BbsPosts) { $Blocks = $Block->findById($data['Block']['id'], null, null, -1); $nc3RoomId = $Blocks['Block']['room_id']; + // @see https://github.com/NetCommons3/Topics/blob/3.1.0/Model/Behavior/TopicsBaseBehavior.php#L365 + Current::write('Block.id', $data['Block']['id']); + Current::write('Room.id', $nc3RoomId); $BlocksLanguage->create(); @@ -303,6 +306,7 @@ private function __saveNc3BbsArticleFromNc2($nc2BbsPosts) { } } + Current::remove('Block.id'); Current::remove('Room.id'); Current::remove('Plugin.key'); From 44a93a5018ac11fd1629f3e8a31dfa396f3a576d Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Wed, 11 Aug 2021 10:49:54 +0900 Subject: [PATCH 47/55] =?UTF-8?q?change:=20test:=20Slack=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3,=20mysql8.0=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=20https://github.com/NetCommons3/NetCommons3?= =?UTF-8?q?/issues/1650?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 35 ++++++++++++++++++++++++-- .github/workflows/tests.yml | 47 +++++++++++++++++++++++++---------- 2 files changed, 67 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3225bc..592d72f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,16 +4,25 @@ on: tags: - '3*' -name: Create Release +name: create_release jobs: build: - name: Create Release + name: create_release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 + - name: Slack Notification on Start + uses: rtCamp/action-slack-notify@v2.2.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-release + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: "#f0ad4e" + SLACK_MESSAGE: "Start Job" + - name: Create Release id: create_release uses: actions/create-release@v1 @@ -26,3 +35,25 @@ jobs: NetCommons ${{ github.ref }} released. draft: false prerelease: false + + # テスト成功時はこちらのステップが実行される + - name: Slack Notification on Finish + uses: rtCamp/action-slack-notify@v2.2.0 + if: success() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-release + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: good + SLACK_MESSAGE: "Job Success" + + # テスト失敗時はこちらのステップが実行される + - name: Slack Notification on Failure + uses: rtCamp/action-slack-notify@v2.2.0 + if: failure() + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASE }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: danger + SLACK_MESSAGE: "Job Failure" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d6bd01e..1477ea2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,12 +13,26 @@ on: name: tests jobs: + setup: + name: setup + runs-on: ubuntu-18.04 + steps: + - name: Slack Notification on Start + uses: rtCamp/action-slack-notify@v2.2.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: "#f0ad4e" + tests: name: tests + needs: setup runs-on: ubuntu-18.04 strategy: matrix: php: [ '7.1', '7.2', '7.3', '7.4' ] + mysql: [ '5.7', '8.0' ] env: NC3_BUILD_DIR: "/opt/nc3" @@ -27,6 +41,7 @@ jobs: NC3_GIT_BRANCH: "master" PLUGIN_BUILD_DIR: ${{ github.workspace }} PHP_VERSION: ${{ matrix.php }} + MYSQL_VERSION: ${{ matrix.mysql }} MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: cakephp_test @@ -38,6 +53,7 @@ jobs: echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" echo "PLUGIN_BUILD_DIR=${PLUGIN_BUILD_DIR}" echo "PHP_VERSION=${PHP_VERSION}" + echo "MYSQL_VERSION=${MYSQL_VERSION}" ls -al ${PLUGIN_BUILD_DIR} - name: docker-compose install @@ -116,22 +132,27 @@ jobs: cd ${NC3_DOCKER_DIR} docker-compose rm -f - # テスト成功時はこちらのステップが実行される - - name: Slack Notification on Success - if: success() - uses: rtCamp/action-slack-notify@v2.2.0 - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - SLACK_CHANNEL: notify-netcommons3 - SLACK_TITLE: "${{ github.repository }}(${{ matrix.php }})" - SLACK_COLOR: good - # テスト失敗時はこちらのステップが実行される - name: Slack Notification on Failure uses: rtCamp/action-slack-notify@v2.2.0 if: failure() env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - SLACK_CHANNEL: notify-netcommons3 - SLACK_TITLE: "${{ github.repository }}(${{ matrix.php }})" + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}(php${{ matrix.php }}, mysql${{ matrix.mysql }})" SLACK_COLOR: danger + + teardown: + name: teardown + runs-on: ubuntu-18.04 + needs: tests + steps: + # テスト成功時はこちらのステップが実行される + - name: Slack Notification on Success + if: success() + uses: rtCamp/action-slack-notify@v2.2.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} + SLACK_CHANNEL: notify-nc3-tests + SLACK_TITLE: "${{ github.repository }}" + SLACK_COLOR: good From 2182818299d2f71c8f6dd008de0315147bed294b Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Fri, 13 Aug 2021 16:36:46 +0900 Subject: [PATCH 48/55] change: Version number to 3.3.4 --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index 619b537..a0891f5 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -3.3.3 +3.3.4 From c8b7f4328a24e1714b2c5471056bdf8c78792457 Mon Sep 17 00:00:00 2001 From: RikaFujiwara Date: Thu, 16 Sep 2021 17:53:59 +0900 Subject: [PATCH 49/55] =?UTF-8?q?fix=20:=20=E7=99=BB=E9=8C=B2=E3=83=95?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=A0=E3=81=AE=E7=A7=BB=E8=A1=8C=E6=99=82?= =?UTF-8?q?=E3=80=81=E5=8F=97=E4=BB=98=E7=95=AA=E5=8F=B7=E3=82=82=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=95=E3=82=8C=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/NetCommons3/NetCommons3/issues/1665 --- Model/Behavior/Nc2ToNc3RegistrationBehavior.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Model/Behavior/Nc2ToNc3RegistrationBehavior.php b/Model/Behavior/Nc2ToNc3RegistrationBehavior.php index 46fc487..03b10ce 100644 --- a/Model/Behavior/Nc2ToNc3RegistrationBehavior.php +++ b/Model/Behavior/Nc2ToNc3RegistrationBehavior.php @@ -220,6 +220,7 @@ public function generateNc3RegistrationAnswerSummaryData(Model $model, $nc2ItemD } $data['RegistrationAnswerSummary'] = [ + 'serial_number' => $nc2DataId, 'answer_status' => '2', 'test_status' => '0', 'answer_number' => $nc3AnswerNumber, From 54955c611ce113a5886d4c20a63ce49a117dd9a9 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Fri, 11 Feb 2022 20:27:04 +0900 Subject: [PATCH 50/55] change: Version number to 3.3.5 --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index a0891f5..fa7adc7 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -3.3.4 +3.3.5 From 64c8f0b73bec422099a6daa94ae77d85a87a6733 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Fri, 24 Feb 2023 14:59:38 +0900 Subject: [PATCH 51/55] =?UTF-8?q?test:=20Github=20Action=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1477ea2..7cfa881 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,10 +44,14 @@ jobs: MYSQL_VERSION: ${{ matrix.mysql }} MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: cakephp_test + COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v2 + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git://github.com/"' >> ~/.gitconfig + - name: environment run: | echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" @@ -58,7 +62,7 @@ jobs: - name: docker-compose install run: | - curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose chmod +x ~/docker-compose sudo mv ~/docker-compose /usr/local/bin/docker-compose docker-compose --version From 49fe75b0f56af8df7dc2ceedb3e67713cb2e738c Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Sun, 26 Feb 2023 03:25:32 +0900 Subject: [PATCH 52/55] change: Version number to 3.3.6 --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index fa7adc7..9c25013 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -3.3.5 +3.3.6 From dcbe2a6bdf8a86d565f7b0ad43d51bc54533465a Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Thu, 5 Oct 2023 19:20:07 +0900 Subject: [PATCH 53/55] =?UTF-8?q?test:=20github=20action=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7cfa881..6da4321 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,22 +3,21 @@ on: branches: - main - master - - availability pull_request: branches: - main - master - - availability name: tests jobs: setup: name: setup - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - name: Slack Notification on Start uses: rtCamp/action-slack-notify@v2.2.0 + if: env.SLACK_WEBHOOK != '' env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} SLACK_CHANNEL: notify-nc3-tests @@ -28,7 +27,7 @@ jobs: tests: name: tests needs: setup - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: matrix: php: [ '7.1', '7.2', '7.3', '7.4' ] @@ -92,46 +91,53 @@ jobs: docker-compose exec -T nc3app bash /opt/scripts/app-build.sh - name: phpcs (PHP CodeSniffer) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh - name: phpmd (PHP Mess Detector) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh - name: phpcpd (PHP Copy/Paste Detector) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/phpcpd.sh - name: gjslint (JavaScript Style Check) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/gjslint.sh - name: phpdoc (PHP Documentor) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh - name: phpunit (PHP UnitTest) + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/phpunit.sh sudo -s chmod a+w -R ${NC3_BUILD_DIR}/build - - name: push coveralls - env: - COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COVERALLS_FLAG_NAME: ${{ matrix.php }} - run: | - cd ${NC3_BUILD_DIR} - ls -la ${NC3_BUILD_DIR} - vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v +# - name: push coveralls +# env: +# COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# COVERALLS_FLAG_NAME: ${{ matrix.php }} +# run: | +# cd ${NC3_BUILD_DIR} +# ls -la ${NC3_BUILD_DIR} +# vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v - name: docker-compose remove + if: always() run: | cd ${NC3_DOCKER_DIR} docker-compose rm -f @@ -139,7 +145,7 @@ jobs: # テスト失敗時はこちらのステップが実行される - name: Slack Notification on Failure uses: rtCamp/action-slack-notify@v2.2.0 - if: failure() + if: env.SLACK_WEBHOOK != '' && failure() env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} SLACK_CHANNEL: notify-nc3-tests @@ -148,13 +154,13 @@ jobs: teardown: name: teardown - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest needs: tests steps: # テスト成功時はこちらのステップが実行される - name: Slack Notification on Success - if: success() uses: rtCamp/action-slack-notify@v2.2.0 + if: env.SLACK_WEBHOOK != '' && success() env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }} SLACK_CHANNEL: notify-nc3-tests From 1004b82b1f6875899a1ddc6aa0a9c235bc749632 Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Thu, 5 Oct 2023 19:38:41 +0900 Subject: [PATCH 54/55] =?UTF-8?q?test:=20github=20action=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6da4321..4a1352b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -90,17 +90,17 @@ jobs: cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/app-build.sh - - name: phpcs (PHP CodeSniffer) - if: always() - run: | - cd ${NC3_DOCKER_DIR} - docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh - - - name: phpmd (PHP Mess Detector) - if: always() - run: | - cd ${NC3_DOCKER_DIR} - docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh +# - name: phpcs (PHP CodeSniffer) +# if: always() +# run: | +# cd ${NC3_DOCKER_DIR} +# docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh + +# - name: phpmd (PHP Mess Detector) +# if: always() +# run: | +# cd ${NC3_DOCKER_DIR} +# docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh - name: phpcpd (PHP Copy/Paste Detector) if: always() @@ -114,11 +114,11 @@ jobs: cd ${NC3_DOCKER_DIR} docker-compose exec -T nc3app bash /opt/scripts/gjslint.sh - - name: phpdoc (PHP Documentor) - if: always() - run: | - cd ${NC3_DOCKER_DIR} - docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh +# - name: phpdoc (PHP Documentor) +# if: always() +# run: | +# cd ${NC3_DOCKER_DIR} +# docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh - name: phpunit (PHP UnitTest) if: always() From cac2cae0b79e23cbe41893852875b33dc79c218e Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Mon, 9 Oct 2023 20:42:57 +0900 Subject: [PATCH 55/55] change: Version number to 3.3.7 --- VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.txt b/VERSION.txt index 9c25013..86fb650 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -3.3.6 +3.3.7