nahlédněte za oponu versionpressu
TRANSCRIPT
![Page 1: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/1.jpg)
VersionPressNAHLÉDNĚTE ZA OPONU
Jan Voráček
![Page 2: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/2.jpg)
Dotazy
https://sli.do/#wcphadev
![Page 3: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/3.jpg)
VersionPress Open-source verzovací plugin
Sebemenší změna na webu = nová verze
Umožňuje týmová workflows
https://sli.do/#wcphadev
![Page 4: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/4.jpg)
Největší výzvy Unikátní identifikace databázových entit
Cizí klíče ve WP
Špatný návrh databáze / zneužívání základních tabulek
Sledování všech změn
Formát vhodný pro ukládání / přenos / mergování
Vlastní tabulky pluginů / témat vzhledů
https://sli.do/#wcphadev
![Page 5: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/5.jpg)
DatabázeSmutný příběh jednoho CMS
https://sli.do/#wcphadev
![Page 6: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/6.jpg)
Unikátní identifikace entit
Your site
Staging
Production
New post (nav_menu_item)ID: 13
Your site
New post (page)ID: 13
?
https://sli.do/#wcphadev
![Page 7: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/7.jpg)
Unikátní identifikace entit
https://sli.do/#wcphadev
![Page 8: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/8.jpg)
Unikátní identifikace entit
Your site
Staging
Production
New post (nav_menu_item)ID: 13
Your site
New post (page)ID: 13
?
https://sli.do/#wcphadev
![Page 9: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/9.jpg)
Unikátní identifikace entit
Your site
Staging
Production
New post (nav_menu_item)ID: 13
VPID: A34B38985CD356
Your site
New post (page)ID: 13
VPID: 8356A35CD4B389
✓
https://sli.do/#wcphadev
![Page 10: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/10.jpg)
Unikátní identifikace entit
New post (nav_menu_item)ID: 13
VPID: A34B38985CD356
Your site
New post (page)ID: 13
VPID: 8356A35CD4B389
Post (nav_menu_item)ID: 14
VPID: A34B38985CD356
Post (page)ID: 13
VPID: 8356A35CD4B389
https://sli.do/#wcphadev
![Page 11: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/11.jpg)
Unikátní identifikace entit
New post (nav_menu_item)ID: 13
VPID: A34B38985CD356
Your site
New post (page)ID: 13
VPID: 8356A35CD4B389
Post (nav_menu_item)ID: 14
VPID: A34B38985CD356
Post (page)ID: 13
VPID: 8356A35CD4B389
https://sli.do/#wcphadev
![Page 12: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/12.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 13: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/13.jpg)
Cizí klíčeschema.php:
CREATE TABLE $wpdb->postmeta ( meta_id bigint(20) unsigned NOT NULL auto_increment, post_id bigint(20) unsigned NOT NULL default '0', meta_key varchar(255) default NULL, meta_value longtext, PRIMARY KEY (meta_id), KEY post_id (post_id), KEY meta_key (meta_key($max_index_length))) $charset_collate;
https://sli.do/#wcphadev
![Page 14: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/14.jpg)
Cizí klíče post: table: posts id: ID …
postmeta: id: meta_id parent-reference: post_id references: post_id: post value-references: meta_key@meta_value: _thumbnail_id: post _menu_item_object_id: '@vp_get_menu_reference'
https://sli.do/#wcphadev
![Page 15: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/15.jpg)
Cizí klíče post: table: posts id: ID …
postmeta: id: meta_id parent-reference: post_id references: post_id: post value-references: meta_key@meta_value: _thumbnail_id: post _menu_item_object_id: '@vp_get_menu_reference'
https://sli.do/#wcphadev
![Page 16: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/16.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 17: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/17.jpg)
Cizí klíče post: table: posts id: ID …
postmeta: id: meta_id parent-reference: post_id references: post_id: post value-references: meta_key@meta_value: _thumbnail_id: post _menu_item_object_id: '@vp_get_menu_reference'
https://sli.do/#wcphadev
![Page 18: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/18.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 19: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/19.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 20: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/20.jpg)
Cizí klíče
wp_posts
wp_term_taxonomy
wp_posts
https://sli.do/#wcphadev
![Page 21: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/21.jpg)
Cizí klíče post: table: posts id: ID …
postmeta: id: meta_id parent-reference: post_id references: post_id: post value-references: meta_key@meta_value: _thumbnail_id: post _menu_item_object_id: '@vp_get_menu_reference'
https://sli.do/#wcphadev
![Page 22: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/22.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 23: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/23.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 24: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/24.jpg)
Cizí klíče
https://sli.do/#wcphadev
![Page 25: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/25.jpg)
Cizí klíče
[ 0 => false, 'auto_add' => [ 0 => 2 ] ]
https://sli.do/#wcphadev
![Page 26: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/26.jpg)
Cizí klíče option: table: options vpid: option_name value-references: option_name@option_value: site_icon: post page_on_front: post page_for_posts: post default_category: term default_email_category: term widget_nav_menu[/\d+/]["nav_menu"]: term widget_pages[/\d+/]["exclude"]: post nav_menu_options["auto_add"][/\d+/]: term featured-content["tag-id"]: term theme_mods_*["nav_menu_locations"][/.*/]: term
https://sli.do/#wcphadev
![Page 27: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/27.jpg)
DB návrh WP / pluginů
„12 tabulek by mělo stačit každému" – Autor neznámý
https://sli.do/#wcphadev
![Page 28: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/28.jpg)
DB návrh WP / pluginů Post Types:
◦ post◦ page◦ attachment◦ revision◦ nav_menu_item◦ custom_css◦ customize_changeset
https://sli.do/#wcphadev
![Page 29: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/29.jpg)
DB návrh WP / pluginů { "widget_text[2]": { "starter_content": true, "value": { "encoded_serialized_instance":
"YToyOntzOjU6InRpdGxlIjtzOjc6IkZpbmQgVXMiO3M6NDoidGV4dCI7czoyMDA6IjxwPjxzdHJvbmc+QWRkcmVzczwvc3Ryb25nPjxiciAvPjEyMyBNYWluIFN0cmVldDxiciAvPk5ldyBZb3JrLCBOWSAxMDAwMTwvcD48cD48c3Ryb25nPkhvdXJzPC9zdHJvbmc+PGJyIC8+TW9uZGF5Jm1kYXNoO0ZyaWRheTogOTowMEFNJm5kYXNoOzU6MDBQTTxiciAvPlNhdHVyZGF5ICZhbXA7IFN1bmRheTogMTE6MDBBTSZuZGFzaDszOjAwUE08L3A+Ijt9",
"title": "Find Us", "is_widget_customizer_js_value": true, "instance_hash_key": "d16b28dc2af40b7d8ee54668bd545ed1" }, "type": "option", "user_id": 1 }, "widget_search[3]": { "starter_content": true, "value": { "encoded_serialized_instance": "YToxOntzOjU6InRpdGxlIjtzOjY6IlNlYXJjaCI7fQ==“,
customize_changeset in wp_posts
https://sli.do/#wcphadev
![Page 30: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/30.jpg)
DB návrh WP / pluginů { "widget_text[2]": { "starter_content": true, "value": { "encoded_serialized_instance":
"YToyOntzOjU6InRpdGxlIjtzOjc6IkZpbmQgVXMiO3M6NDoidGV4dCI7czoyMDA6IjxwPjxzdHJvbmc+QWRkcmVzczwvc3Ryb25nPjxiciAvPjEyMyBNYWluIFN0cmVldDxiciAvPk5ldyBZb3JrLCBOWSAxMDAwMTwvcD48cD48c3Ryb25nPkhvdXJzPC9zdHJvbmc+PGJyIC8+TW9uZGF5Jm1kYXNoO0ZyaWRheTogOTowMEFNJm5kYXNoOzU6MDBQTTxiciAvPlNhdHVyZGF5ICZhbXA7IFN1bmRheTogMTE6MDBBTSZuZGFzaDszOjAwUE08L3A+Ijt9",
"title": "Find Us", "is_widget_customizer_js_value": true, "instance_hash_key": "d16b28dc2af40b7d8ee54668bd545ed1" }, "type": "option", "user_id": 1 }, "widget_search[3]": { "starter_content": true, "value": { "encoded_serialized_instance": "YToxOntzOjU6InRpdGxlIjtzOjY6IlNlYXJjaCI7fQ==“,
customize_changeset in wp_posts
https://sli.do/#wcphadev
![Page 31: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/31.jpg)
DB návrh WP / pluginů { "widget_text[2]": { "starter_content": true, "value": { "encoded_serialized_instance":
"YToyOntzOjU6InRpdGxlIjtzOjc6IkZpbmQgVXMiO3M6NDoidGV4dCI7czoyMDA6IjxwPjxzdHJvbmc+QWRkcmVzczwvc3Ryb25nPjxiciAvPjEyMyBNYWluIFN0cmVldDxiciAvPk5ldyBZb3JrLCBOWSAxMDAwMTwvcD48cD48c3Ryb25nPkhvdXJzPC9zdHJvbmc+PGJyIC8+TW9uZGF5Jm1kYXNoO0ZyaWRheTogOTowMEFNJm5kYXNoOzU6MDBQTTxiciAvPlNhdHVyZGF5ICZhbXA7IFN1bmRheTogMTE6MDBBTSZuZGFzaDszOjAwUE08L3A+Ijt9",
"title": "Find Us", "is_widget_customizer_js_value": true, "instance_hash_key": "d16b28dc2af40b7d8ee54668bd545ed1" }, "type": "option", "user_id": 1 }, "widget_search[3]": { "starter_content": true, "value": { "encoded_serialized_instance": "YToxOntzOjU6InRpdGxlIjtzOjY6IlNlYXJjaCI7fQ==“,
customize_changeset in wp_posts
https://sli.do/#wcphadev
![Page 32: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/32.jpg)
WorkflowsWordPress na steroidech
https://sli.do/#wcphadev
![Page 33: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/33.jpg)
Úložiště dat Databáze
◦ Obtížné verzování◦ Slabší programovací jazyk◦ Složité diffy◦ Běžné média soubory >> běžné DB řádky
Filesystém◦ Verzování => Git◦ PHP > PL/SQL◦ Diffy => Git◦ Počet běžných DB řádek >> počet souborů
https://sli.do/#wcphadev
![Page 34: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/34.jpg)
Formát pro ukládání Soubory se nemění
DB záznamy je potřeba šikovně diffovat◦ Řádek v DB == soubor◦ Sloupec v DB == řádek v souboru
◦ DDL? JSON? Serializovaný objekt?
https://sli.do/#wcphadev
![Page 35: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/35.jpg)
Formát pro ukládání – INI !!!
[8CFC6D1208DC4D0F877039A3B8300366]post_date = "2016-02-11 17:29:03”post_date_gmt = "2016-02-11 17:29:03”post_content = "live" post_content_filtered = "" post_title = "Added on LIVE"post_excerpt = ""post_status = "publish"post_type = "post"comment_status = "open"ping_status = "open"post_password = ""post_name = "added-on-live"to_ping = ""pinged = ""menu_order = 0post_mime_type = ""guid = "http://3D13C49A-BE86-4C8B-B4ED-D83222FFB296"vp_post_author = "528E14A1AAD04CC08121DD631B2F6591"vp_post_parent = 0vp_term_taxonomy[0] = "752CC32F4AF842A79BEF42454E130743"
https://sli.do/#wcphadev
![Page 36: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/36.jpg)
Formát pro ukládání commit ac33c7943bb2d947d0e9769b70dd2f2cfe56b7c5Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
X-VP-Version: DEVX-VP-Environment: default
--- a/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini+++ b/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini@@ -9,7 +9,7 @@ comment_content = "Hi, this is a comment..."comment_karma = "0"-comment_approved = "1"+comment_approved = "0"comment_agent = ""comment_type = ""vp_comment_post_ID = "A766C62334614A50B67305B56D1C6EA6"
https://sli.do/#wcphadev
![Page 37: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/37.jpg)
Formát pro ukládání commit ac33c7943bb2d947d0e9769b70dd2f2cfe56b7c5Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
X-VP-Version: DEVX-VP-Environment: default
--- a/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini+++ b/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini@@ -9,7 +9,7 @@ comment_content = "Hi, this is a comment..."comment_karma = "0"-comment_approved = "1"+comment_approved = "0"comment_agent = ""comment_type = ""vp_comment_post_ID = "A766C62334614A50B67305B56D1C6EA6"
https://sli.do/#wcphadev
![Page 38: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/38.jpg)
Zobrazení změn v GUI commit ac33c7943bb2d947d0e9769b70dd2f2cfe56b7c5Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
X-VP-Version: DEVX-VP-Environment: default
--- a/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini+++ b/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini@@ -9,7 +9,7 @@ comment_content = "Hi, this is a comment..."comment_karma = "0"-comment_approved = "1"+comment_approved = "0"comment_agent = ""comment_type = ""vp_comment_post_ID = "A766C62334614A50B67305B56D1C6EA6"
https://sli.do/#wcphadev
![Page 39: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/39.jpg)
https://sli.do/#wcphadev
Zobrazení změn v GUI commit ac33c7943bb2d947d0e9769b70dd2f2cfe56b7c5Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
X-VP-Version: DEVX-VP-Environment: default
--- a/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini+++ b/wp-content/vpdb/comments/32/32EB4B4D4D944039818CF9DF3EB73E62.ini@@ -9,7 +9,7 @@ comment_content = "Hi, this is a comment..."comment_karma = "0"-comment_approved = "1"+comment_approved = "0"comment_agent = ""comment_type = ""vp_comment_post_ID = "A766C62334614A50B67305B56D1C6EA6"
![Page 40: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/40.jpg)
Zobrazení změn v GUI actions.yml:
comment: tags: VP-Comment-PostTitle: / VP-Comment-Author: comment_author actions: create: New comment for post '%VP-Comment-PostTitle%' edit: message: Edited comment for post '%VP-Comment-PostTitle%' priority: 12 delete: Deleted comment for post '%VP-Comment-PostTitle% trash: Comment for post '%VP-Comment-PostTitle%' moved to trash untrash: Comment for post '%VP-Comment-PostTitle%' moved from trash approve: Approved comment for post '%VP-Comment-PostTitle%' unapprove: Unapproved comment for post '%VP-Comment-PostTitle%'
https://sli.do/#wcphadev
![Page 41: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/41.jpg)
Zobrazení změn v GUI actions.yml:
comment: tags: VP-Comment-PostTitle: / VP-Comment-Author: comment_author actions: create: New comment for post '%VP-Comment-PostTitle%' edit: message: Edited comment for post '%VP-Comment-PostTitle%' priority: 12 delete: Deleted comment for post '%VP-Comment-PostTitle% trash: Comment for post '%VP-Comment-PostTitle%' moved to trash untrash: Comment for post '%VP-Comment-PostTitle%' moved from trash approve: Approved comment for post '%VP-Comment-PostTitle%' unapprove: Unapproved comment for post '%VP-Comment-PostTitle%'
https://sli.do/#wcphadev
![Page 42: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/42.jpg)
Zobrazení změn v GUI comment: tags: VP-Comment-PostTitle: / VP-Comment-Author: comment_author actions: unapprove: Unapproved comment for post '%VP-Comment-PostTitle%'
https://sli.do/#wcphadev
![Page 43: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/43.jpg)
Zobrazení změn v GUI comment: tags: VP-Comment-PostTitle: / VP-Comment-Author: comment_author actions: unapprove: Unapproved comment for post '%VP-Comment-PostTitle%'
Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
https://sli.do/#wcphadev
![Page 44: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/44.jpg)
Zobrazení změn v GUI comment: tags: VP-Comment-PostTitle: / VP-Comment-Author: comment_author actions: unapprove: Unapproved comment for post '%VP-Comment-PostTitle%'
Author: admin <[email protected]>Date: Sat Feb 18 01:08:31 2017 +0100
[VP] Unapproved comment for post 'Vítejte!'
VP-Action: comment/unapprove/32EB4B4D4D944039818CF9DF3EB73E62 VP-Comment-Author: A WordPress CommenterVP-Comment-PostTitle: Vítejte!
https://sli.do/#wcphadev
![Page 45: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/45.jpg)
Sledování změn Na úrovni DB
◦ Monkey patching wp-db.php / db.php drop-in◦ create, edit, delete
Pomocí filtrů add_filter('vp_entity_action_post', function ($action, $oldEntity, $newEntity) {
if ($action === 'edit') { // determine more specific edit action $diff = EntityUtils::getDiff($oldEntity, $newEntity);
if (isset($diff['post_status']) && $diff['post_status'] === 'trash') { return 'trash'; }
if (isset($diff['post_status']) && $oldEntity['post_status'] === 'trash') { return 'untrash'; }
https://sli.do/#wcphadev
![Page 46: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/46.jpg)
Rozšiřitelnost VersionPressu
schema.yml◦ DB schéma – tabulky, cizí klíče, ignorované entity, atd.
actions.yml◦ Seznam možných akcí + textová reprezentace
shortcodes.yml
hooks.php◦ PHP hooky na WP i VP akce
https://sli.do/#wcphadev
![Page 47: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/47.jpg)
Tipy pro vývojáře
https://sli.do/#wcphadev
![Page 48: Nahlédněte za oponu VersionPressu](https://reader035.vdocuments.site/reader035/viewer/2022062316/58ac3fa91a28ab99028b46d7/html5/thumbnails/48.jpg)
Tipy pro vývojáře pluginů
Nezneužívejte základní tabulky WP
Používejte cizí klíče v DB
Vytyčte v kódu si jasnou hranici mezi WP a vlastním pluginem
Testujte svůj kód
Testujte integraci s WP
Přečtěte si Clean Code, The Clean Coder, Test Driven Development by Example, Data Modeling Essentials
https://sli.do/#wcphadev