Migration Plan From Drupal 6 To Drupal 8

3y ago
43 Views
2 Downloads
3.30 MB
77 Pages
Last View : 1d ago
Last Download : 3m ago
Upload by : Joao Adcock
Transcription

Migration Plan fromDrupal 6 to Drupal 8Gung WangLead Drupal DeveloperWeb Development ProfessionalCIT, State University of New York Geneseo

TopicsPhase I. Research & Drupal 8 FeaturesPhase II. Geneseo Drupal 6 Platform OverviewPhase III. Upgrading Modules from D6 to D8Phase IV. Upgrading Themes & TemplatesPhase V. Database MigrationPhase VI. Geneseo Websites Migration & Cut Over

Migration ProgressResearch &OutsourceDo researchfor Drupal 7and Drupal8Compare D6with utedModulesGeneseoCustomModulesRewrite codebased on D8standardMigrate & TestThemes &TemplatesGeneseoCustom Themes& templatesGeneseo allGeneseo libraryMobile themeGeneseogarlandRebuild themes& templatesTestDatabaseD6 to D8DrupalmigrationmoduleDB structure:D6 VS D8Write scripts toexport/importdata ?Manually fixdata ?WebsitesMigration& TestContents,nodes,images, filesWebsites cutoverTest & reviewDrupal 8traning

Phase I.Research & Drupal 8 FeaturesWith more than 200 new features andimprovements

I. Do Research in Drupal 8Installed XAMPP1.8.3 package on Testing Server Drupal 8 requires PHP 5.4 or above Apache 2.4.9, MySQL 5.6.16 PHP 5.5.11 & PEAR SQLite multibyte phpMyAdmin 4.1.12Current Web Server Drupal 6, PHP 5.2, Red Hat Linux 2.6 Installed Current Geneseo Website (Drupal 6) on PHP5.5 Web Server PHP 5.4 has finally removed "call time pass by reference” Drupal 6 Views module not working wellInstalled & Tested Drupal 8 Drupal 8.0.0-alpha12 Drupal 8.0.0-alpha13 Drupal 8.0.0-beta3 Drupal 8.0.0-beta7 Drupal 8.0.0-dev (the latest dev version)

I. New Features in Drupal 8In-Place EditingWYSIWYG in Core!

I. New Features in Drupal 8Mobile ImprovementsWYSIWYG in Core!Mobile is in its DNA

I. New Features in Drupal 8Responsive themes, images,and breakpointsWYSIWYG in Core!

I. New Features in Drupal 8Mobile-friendly administrationWYSIWYG in Core!

I. New Features in Drupal 8Changes for site builders Improved Data Modeling Tools: New field types Improved Data Modeling Tools: New entity types Form displays: customize the look and feel of data entry forms Views in Drupal 8 Core!Views fully customizable. Restyled administration interface ( Site management ) Multilingual ImprovementsCommunity translation downloadsTranslation on (almost) everything

I. New Features in Drupal 8Changes for designers and themersHTML5 Form ElementsNew front-end librariesWYSIWYG in Core!Native Schema.org Output

I. New Features in Drupal 8Changes for developersConfiguration Managementdevstageprod

I. New Features in Drupal 8Changes for developersImport

I. New Features in Drupal 8Changes for developersDrush integration for automation!Drush is a command-line shell and scripting interface for Drupal

I. New Feature in Drupal 8Web ServicesDrupal 8 implements thestate-of-the-art HypertextApplication Language(HAL)Expose content as JSONor XML easilyAuthenticate the clientwith HTTP authentication

I. New Features in Drupal 8Changes for developers Symfony Framework HttpFoundation: defines an object-oriented layer forthe HTTP specificationHttpKernel: a structured process for converting aRequest into a ResponseDependency Injection: standardize and centralize theway objects are constructedEventDispatcher: communicate with each otherRouting: maps an HTTP request to a set ofconfiguration variablesYaml: a human-readable data serialization formatSecuritySerializerTranslation

I. New Features in Drupal 8Changes for developers GETting data out of Drupal: GETting data into Drupal:RESTful Web Services moduleGuzzle "Proudly Found Elsewhere" Much more modern, object-oriented code (classes, inheritance,interfaces, etc.)Embracing latest PHP standards (e.g. PSR-0, namespaces, traits)Using many “best of breed” external libraries: Composer, PHPUnit,Guzzle, Zend Feed Component, Assetic. Catch all of the changes!

Phase II.Our Drupal 6 Platform Overview

II. Our Drupal 6 Platform OverviewChief PurposeOld Websites: So many websites with different looksMake all websites looked like one Geneseo websiteOutsource And Do It OurselvesOutsource for website design & graphic designDIY: Drupal design and implementationOptimize Site Navigation SystemAttractive ‘Look and Feel’CMS for Easy to UseCMS for Easy to Maintain

InfrastructureGeneseo WebsiteMain SiteDepartments, Offices etc.Sub sitesSub Sites Permission and Access ControlLoading Balance(www1, www2, www3)LDAP AuthenticationDrupal 6Linux Apache Mysql PHP

Integrated & consistentGo back to the old time in 2007

Integrated & consistentConsistent Color StylePre-designed color styles for Drupal content editorsIntegrated Theme DesignPre-designed templatesConsistent CSSPre-designed CSS for h1 h2 h4 h5 p tags, etc.Consistent Page LayoutConsistent Global Navigation Menu SystemConsistent Header and FooterIntegrated Sub-Site Navigation Menu

Consistent ColorStyleIntegrated ThemeDesignConsistent CSSConsistent PageLayoutConsistent GlobalNavigation SystemConsistent Headerand FooterIntegrated SubSites NavigationMenu

Single Mysql Database Instance / SchemaNot Drupal multiple installations with multiple DB instancesShare the same database instanceOne Data Source Center for all ApplicationsMysql Cluster Database ServerPerformanceShare The Same Code BaseShare All ModulesShare All TemplatesShare All Functionality

Permission and Access ControlSUB SITE : Department, Office, Program, Organization,Project WebsiteSub Site Role Permission ControlCreate a new sub site, also create a new ROLE permissionMake sure users of admission office can NOT change anycontent of Math department siteONE Content Type For ONE Sub SiteContent Type Permission ControlNavigation Menu Permission Control

UI for Content EditorEasy to entsInsertImage/MediaUser Interfacefor ContentEditorContentManagementWeb FileManagement

Theme & Template DesignGeneseo Garland Theme: Drupal PHP Templates, CSS and My Site Management

Geneseo all themeTemplatesCSSDemoPages

Geneseo library & Mobile theme

Contributed modules utilizedContributed Modules Besides of Drupal Core ModulesaclAddtoanyadvanced helpadvuserajaxalumni profileassign deptsbackup migrateblock managerbrilliant gallerybrowscapby geneseodraggableviewsdynamicfieldfaq askfast factsfeedapifeedsflagfrontgeneseo admingeneseo themesgen mapsGlobalredirectcalendarcalendar blockcaptchacascckcomputed fieldconnect geneseocontact formscsscssapictmctoolscustom breadcrumbsdateDevelgmapgoogle analyticsiframeImageimagefieldimage fuploadimceimg assistjquery uijquery updatejstimerlate form alterldap integrationlightbox2link

Contributed modules utilizedContributed Modules Besides of Drupal Core ModulesLocationlogin destinationlogintobogganmenu blockmenu breadcrumbmenu per rolemini sitemobile toolsnews eventsnews events enconicer uinode clonepanelspathautopath redirectprintread rssSchedulersite mapsite pagesslideshowtagadelictaxonomy blocksteaserbytypethemekeytokenviewsviews calcviews modify queryvocabindexwebfmWebformwebform validationworkflowworld war2WysWysiwygwysiwyg spellcheckHow many contributed modules did we install? About 90

Customize DrupalCustom Drupal 6A good solution for the SUB-SITE web infrastructureGroup permission for Sub Sites:Menu,Web Files,Web Forms,Roles,Content types,etc.

Custom Modules to Fill GapsWe built modulesTotally 19 Modulesalumni profilefast factsgen mapsassign deptsgeneseo adminconnect geneseoby geneseogeneseo themesWebfmmini siteread rssWebformnews eventssite mapworld war2news events encosite pagesWysslideshow

Alumni Profile module

What’s Your Story module

Geneseo Campus Maps (Google MAP API)

Phase III.Upgrading Modules From Drupal 6to Drupal 8

Module MigrationAbout 90modules including our customer modulesModule upgrade form version 6.x.x to version 8.x.xSome modules will be removed because new features of Drupal8, such as the image assist, TinyMCESome modules might be rebuilt by ourselves because there isno new Drupal 8 version maintained by the author.We need dig into each module for version 8 releaseFeatures/Modules no Longer in Use?Are these Contributed Modules Ready?

Contributed modulesDrupal 6Drupal 7Drupal 8Acl (Access Control)YesIn planAddtoanyYesNoadvanced helpYesNoAjaxNoEmbedded?backup migrateYesUnder developmentblock managerYesIn planbrilliant galleryYesNo

Contributed modulesDrupal 6Drupal 7Drupal 8draggableviewsYesEmbedded in the core?dynamicfieldNoDynamic Entity ? Embedded?faq askYesNofeedapiNoNofeedsYesUnder developmentflagYesUnder developmentFrontYesUnder developmentGlobalredirectYesUnder developmentcalendarYesNocalendar blockYesNo

Contributed modulesDrupal 6Drupal 7Drupal 8captchaYesUnder developmentcasYesUnder developmentcckIn CoreIn Corecomputed fieldYesIn Core?contact formsYesNocssNoNocssapiNoNoctm, Menu Setting per CTNo, in core?No. In Core?ctoolsYesIn plancustom breadcrumbsYesNodateYesUnder developmentDevelYesUnder developmentgmapYesUnder development

Contributed modulesDrupal 6Drupal 7Drupal 8Iframe (CCK)YesCCK in coreImageIn the CoreIn CoreimagefieldIn the CoreIn Coreimage fuploadNot supportedNot supportedimceYesAlternative in Coreimg assistNoNojquery uiNot supportedNot supportedjquery updateYesIn planJstimer (JS Timer)YesNolate form alterNoNoldap integrationNo (LDAP)Under developmentlightbox2YesNolinkYesUnder development

Contributed modulesDrupal 6Drupal 7Drupal 8LocationYesUnder developmentlogin destinationYesNologintobogganYesNomenu blockYesIn core or not?menu breadcrumbYesUnder developmentmenu per roleUnder devNomobile toolsYesNonicer uiNoNonode cloneYesNo

Contributed modulesDrupal 6Drupal 7Drupal 8pathautoYesUnder developmentpath redirectAlternative: RedirectNoPrintYesNoSchedulerYesUnder developmentsite mapYesNoteaserbytypeIn CoreIn CorethemekeyYesUnder developmenttokenYesUnder development

Contributed modulesDrupal 6Drupal 7Drupal 8viewsIn CoreIn Coreviews bformYesIn planwebform validationYesNoWorkflowYesNoWysiwygYesAlternative in Corewysiwyg spellcheckYesAlternative

Customize DrupalWe modified Drupal modules: Menu module to add the Group permission for sub sitesmenu.admin.inc functions :menu overview page(), menu overview form(),menu edit menu()Menu.module functions :menu help() , menu menu(), menu get menus() Node module to add the access control for nodesNode.module:node access(), node dept access(),node is dept access type(), node has dept access() Customize a Patch in Drupal 8 ?

Why custom Drupal 6 ?Can NOT find a good solution for the SUB-SITE webinfrastructureSub-site permission for Navigation MENUDifferent sub-site users have different access to their own NAVmenuWeb File Manager module needs sub-site level accessWeb Form module needs sub-site level accessContent Type access ( one CT one sub site)User Roles permission ( one Role one sub site)

Custom Modules to Fill GapsWe built modulesalumni profile (Alumni News & Stories)fast facts (Geneseo Fast Facts)assign depts (Sub-site System)geneseo admin (Sub Site Admin)by geneseo ( Geneseo by Geneseo)geneseo themes (Themes andLayout Templates)mini site (Create new Sub Site)read rss (Read RSS Feed)news events (Geneseo News & Events)site pages ( Sub Site Pages/Nodes)news events enco (Emcampus News)Slideshow (Pictures SlideShow)

Custom Modules to Fill GapsWe built modulesgen maps (Geneseo Campus Google Maps)connect geneseo (Connect Geneseo/Social Media)Webfm ( Web File Manager, customized for sub site)Webform ( Web Form, customized for sub site)world war2 (Alumni Stories of World War 2)Wys (What Your Story, Featured Alumni)

Upgrading Custom ModulesPreparing Change Records for Drupal 8 Core Drupal 8 API Documentation Drush – a command-line interface Drupal Module “upgrader”Module Porting Process1. Place modules under D8 dir2. Debug and Find problem3. Search D8 List Changes4. Rewrite the Code5. Repeat Step 2 Comment out Code Use debug() function Run rebuild.php script Uninstall/reinstall modules

Upgrading Custom ModuleRead RSS Feed Module

Upgrading Custom ModuleRead RSS Feed ModuleDrupal 6 VersionDrupal 8 Versionread rss :read rss :read rss.inforead rss.installread rss.moduleread rss.installread rss.moduleread rss.info.ymlread rss.routing.yml/config/install/read rss.schema.yml

Upgrading Custom Moduleread rss module Drupal 8 Version

Online DocumentationUpgrading Your /upgrading-your-modulesConverting 7.x modules to 8.xhttps://www.drupal.org/update/modules/7/8

Phase IV.Upgrading Themes & TemplatesFrom Drupal 6 to Drupal 8

Upgrading Themes & TemplatesThere are 66 templates with fixed width designConvert them to TWIG templates.Convert them to responsive designnode-news events.tpl.php,page-calendar news ,views-view-fields--News-Slider-3Col.tpl.php

Theme & Template DesignGeneseo All ThemeMain siteAll sub sites except for the library siteMany customized templatesMany page layoutsGlobal CSS style sheetsGlobal JavaScript code: JQuery, Slideshow, etc.Views templates

Geneseo All Theme: Templates, CSS

Geneseo Library ThemeSpecial design with the same color styleDifferent header, navigation menu, layoutGeneseo Mobile ThemeMobile pages

Drupal Twig Conversion*.tpl.php html.twigDrupal Twig conversion instructions (tpl.php to rison of PHPTemplate and Twig theming paradigmshttps://www.drupal.org/node/1918824Theme Functions ConversionConvert a theme function to a template file & preprocess function Identify theme function Create a *.html.twig template Place twig file in the theme (sandbox) Search functions in Drupal API Documentation Add a PHP-style docblock at the top of file, and comment out Copy the source code Change the PHP code into mostly HTML and print Improve templates: redundant templates, markup/variable names, etc.

Simple Examplesystem.module ( preprocess function )Twig template ( link.html.twig )

Responsive -awesome.min.cssjquery.min.jsbootstrap.min.js

Responsive Design ? /themes/geneseo all/template.php /page-fingerlakesopera.tpl.phpFunction phptemplate preprocess page(){ switch ( node type) { case 'fingerlakesopera carousel': tpl file 'page-fingerlakesopera';break; div id "wrap" header class "masthead" div id "nav" class "navbar navbar-custom navbarinverse navbar-static-top affix-top" div class "container" /div div id "section1" class "divider" /div div class "container" div class "col-sm-11 col-md-10 col-md-offset-1 col-lg10 col-lg-offset-1" div class "left" /div div class "breadcrumbs" div class "page-header text-center" div class "divider“ /div /div /div div id "footer" case 'fingerlakesopera': tpl file 'page-fingerlakesopera';break;} }Need to figure out a solution for Drupal 8 template ?

Phase V.Database Migration From Drupal 6to Drupal 8

ChallengesOur Database ContentsUntil December 15th, 2014Totally 34176 nodes in “node” tableTotally 66496 node revisions in “node revisions” tableTotally 74436 files in “files” tableTotally 332 sub sitesTotally 394 content typesTotally 359 roles for sub site group permission726 users with at least one role permission

DB Structure D6 v.s. D8D6: node tablesD8: node tables

DB Structure D6 v.s. D8Affect Custom Modules, e.g.“Create Mini Site”/** File: create mini site.php* Purpose: Get posted data from a submission form and create a mini site (sub site);*Create a new content type, a new role, a new menu, a new department, a new block;*Grant permission to the role, create an index page, add url alias;*Setup the themekey*/Rewrite Code with Database Abstract Functions

Database MigrationPHP Code in Nodes, Forms, Blocks, BoxesPHP code in nodes not supported in D8Found and addressed before upgradingRun the Security Review module for the tag ?phpSQL: select * from nodes where body like ‘% ?php%’D8 Compatible Version of DrushInstall Drupal 8Enable Migrate ModuleMigrateTwo databases (D6 & D8) running at the sameIssues, errors, problemsGo thought each of them and fix

Online DocumentUpgrading from Drupal 6 to Drupal 8https://www.drupal.org/upgrade/migrate

Phase VI.SUNY Geneseo Websites Migration& Cut Over

Websites MigrationOne-time / Big-bang Cut Over ?Test to migrate on the Development serverFixed all possible issues, errors, problems on DevMigrate on production serverSwitch Geneseo domain to Drupal 8 production server In the middle of the nightPeriodical Migrating Progress?We migrated old Geneseo websites to Drupal 610-15 websites each time, and following one-week DrupaltrainingDrupal 8 TrainingContent Editor TrainingSub-site Webmaster Training

It’s Worth To Migrate D8Even though the Drupal 8 migration is a BIG project, itis WORTH to do itA powerful website development platform.Adheres to modern object oriented programming patterns, PHP bestpracticesAdheres to HTML5 and YAML standardsIncorporates the best available Web technologies,including CKEditor, Symfony2, Twig, jQuery, Backbone.js, and Guzzle.A robust assortment of add-ons in the form of modules and themes.Search engine friendlyContains intuitive "What You See Is What You Get” (WYSIWYG) contentcreation tools and powerful in-place editing tools.

fingerlakesoperaCreate/Edit node, My site managementCampus Map: www.geneseo.edu/m/maps/search/m

Online DocumentsMigrate Drupal 6 to Drupal 8The Drupal 6 to 8 Upgrade rupal-upgrade-1Upgrading from Drupal 6 or 7 to Drupal n to migrate D6 to D8https://www.drupal.org/node/2350521Upgrading Your /upgrading-your-modulesConverting 7.x modules to 8.xhttps://www.drupal.org/update/modules/7/8

QuestionsAny Questions?Thank You!Gung Wang585-245-5577Department of Computing & Information TechnologySUNY Geneseo

Symfony Framework . CMS for Easy to Use CMS for Easy to Maintain II. Our Drupal 6 Platform Overview . Infrastructure Geneseo Website . . Ajax backup_migrate block_manager brilliant_gallery . Drupal 7 Yes Yes Yes No Yes Yes Yes Drupal 8 In plan No No Embedded? Under development

Related Documents:

How to create custom content to store in your Drupal database using CCK Implementing seo in drupal website Drupal custom theme development (Html to drupal theme development) Drupal 8.0 content management system syllabus 1. Drupal's requirements and how it works: drupal architecture Drupal 8 Basics o How Drupal began o What is Drupal 8

guided migration from Drupal 6 or 7 to Drupal 8. Assisted upgrades to Drupal 8 can now be done, much more easily than they used to be able to earlier. Three modules were added in order to facilitate the custom migrations as well as the Drupal 6 or Drupal 7 to Drupal 8 migrations: Migrate Migrate Drupal Migrate Drupal UI Chapter 2

Chapter 1: Developing for Drupal 8. 7. Introducing Drupal (for developers) 8. Developing for Drupal 8. 8. Technologies that drive Drupal. 9 PHP 10 Databases and MySQL 10 The web server 11 HTML, CSS, and JavaScript 11. Drupal architecture. 11 Drupal core, modules, and themes 11 Hooks, plugins, and events 12 Services and the dependency injection .

Customer Identity and Access Management in a global Drupal setup Drupal Business Days, Frankfurt, 19.05.17. . Sponsor of multiple Drupal camps and European Drupal Business Days Active community work through contributions . Document and assign all tasks. Solutions. Be bold. Solutions. Get into the lead.

This is a free introductory course for people who are curious about Drupal, and want to find out more. Your Drupal guide will help you get up to speed with Drupal more quickly than if you tried on your own. First youʼll find out about your Drupal Guide delivering the Hello Drupal tour, and also learn about the other people in the room with you.

serez invité à choisir la version de Drupal à télécharger. Je recommande de sélectionner le dernier. Ainsi, lorsque Drupal est téléchargé, vous devez l'installer. drupal site:install Après quelques étapes simples, votre site Drupal sera prêt. Avec cette méthodologie, une nouvelle installation de Drupal nous prend entre 5 et 7 .

AJAX Framework & drag-and-drop systems in Drupal 6! File & Image modules in Drupal 7! Dialog system & CKEditor in Drupal 8 First core patch included in 7.14 release! Drupal core usability team member, D7 & D8! Twig initiative lead, Drupal 8 (2011 - 2013) Core Contributors who are we to judge? Nate Jen

Wagner said it is set up at OSCI, so Mr. Yoder is going to look into it further. 2. There have been concerns over sanitation issues and a lack of cleanliness in the chow hall and Culinary, for example, the underside of the milk machines and the underside of the hoods above the grills. Mr. Wagner talked to the day shift OIC to have cleaning increased. 3. It was asked if the roll up blinds above .