Issue #1126108 by Damien Tournoud: Fix undefined variables in XML error handling
[project/migrate.git] / BACKPORT.txt
1 Differences visible to users/implementors:
2
3 Field handlers have no $field_info parameter in D6
4
5 D6 has no machine names for vocabularies - the D6 migrate module will basically
6 generate one from the the user-visible name (lower-case, spaces=>underscores),
7 there is a small risk of collision as a result if vocabulary names differ only
8 in punctuation and/or case.
9
10
11 Conventions to make porting changes between Drupal 6 and Drupal 7 easier:
12
13 Try to always use specific DBTNG functions such as db_select() instead of the more
14 general db_query(), which needs to be renamed to dbtng_query() under Drupal 6.
15
16
17 TODOs for initial backport to Drupal 6:
18
19 Most of the visible differences above can probably be eliminated
20 MigrateDestinationTerm constructor takes name instead of machine name as a
21  parameter, should use a generated machine name.
22 node.inc: Retrieve attached fields in fields()
23 comment.inc: Changes needed for D6 comment_save() (form assumptions)
24 fields.inc: File API changes
25 image field support
26
27
28 D6/D7 differences:
29
30 *.info:
31 Core/PHP requirements
32
33 *.install:
34 D6 requires explicit install/uninstall of schema
35 D6 implements hook_requirements() to verify autoload 2 is present.
36
37 migrate.drush.inc:
38 Rollback/wipe need to run as uid 1 in D6
39
40 migrate.info:
41 D6 dependent on autoload/dbtng
42
43 migrate.install:
44 D7 update functions
45
46 migrate.module:
47 Includes d7.inc
48 migrate_field_handler_invoke_all() has no $field_info parameter in D6
49 migrate_watchdog() disabled in D6 (review)
50
51 includes/base.inc:
52 No second chance (drupal_static_reset) on low memory in D6
53
54 plugins/destinations/comment.inc:
55 Field differences: timestamp vs. created/changed
56 No fields on comments in D6
57 Differences in node_comment_statistics query
58 Table name (comments/comment)
59 comment_save takes array in D6.
60
61 plugins/destinations/fields.inc:
62 Handlers have both $instance and $field_info on D7, $instance only on D6
63 Field arrays keyed by language on D7 only
64 Fields only apply to nodes in D6
65 No taxonomy_term_reference in D6
66
67 plugins/destinations/node.inc:
68 No is_new in D6.
69 Teaser field in D6 only.
70 Body is a field API field in D7.
71 No node_object_prepare() in D6.
72
73 plugins/destinations/term.inc:
74 Fields only apply to nodes in D6.
75 Taxonomy API differences
76
77 plugins/destinations/user.inc:
78 Fields only apply to nodes in D6.
79
80 plugins/sources/sqlmap.inc:
81 db_table_exists/dbtng_table_exists
82
83 migrate_example/beer.inc:
84 Destination term specified by visible name instead of (non-existent) machine
85 name on D6.
86 No fields on users in D6.
87 Node IDs not preserved in D6.
88 Teaser is its own field in D6, not a body argument.
89
90 migrate_example/beer.install.inc:
91 No image field in D6 (yet)
92 Taxonomy API differences.
93 Vocabulary not a field in D6.
94 Difference in node_type_save parameter.
95 No node_add_body_field() in D6.
96 No user fields (gender, favs) in D6.
97 Field/CCK API differences.
98
99 migrate_example/migrate_example.info:
100 D6 dependent on content
101
102 migrate_example/migrate_example.install:
103 No DRUPAL_ROOT for required files in D6
104 No API for format creation in D6
105
106 migrate_example/wine.inc:
107 Destination term specified by visible name instead of (non-existent) machine
108 name on D6.
109 No fields on users in D6.
110 Teaser is its own field in D6, not a body argument.
111 Comment field differences
112
113 migrate_example/wine.install.inc:
114 No image field in D6 (yet)
115 Taxonomy API differences.
116 Vocabulary not a field in D6.
117 Difference in node_type_save parameter.
118 No node_add_body_field() in D6.
119 No user fields (gender, favs) in D6.
120 Field/CCK API differences.
121
122 migrate_ui/migrate_ui.module:
123 hook_perm() vs. hook_permission()
124
125 migrate_ui/migrate_ui.pages.inc:
126 D6 uses drupal_get_form(), D7 returns form array directly
127 D6 uses theme_table(), D7 uses '#theme' => 'table', ditto for item_list
128 No vertical tabs in D6
129 #value vs. #markup
130 Classes passed as arrays in D7