SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
@obenland
The Theme Directory
WordCamp San Antonio
@obenland
WordPress.org
@obenland
Network of Networks.
@obenland
Plugin/Theme Repository
@obenland
The Themes Downloader
@obenland
// Just. Don’t. Ask.
@obenland
The Themes Downloader
• Figures out the correct version.
• Checks the files out from SVN.
• Zips up the package and saves it.
• Serves the zip file.
@obenland
The Themes API
@obenland
The Themes API
• Two endpoints with various “actions”.
• No documentation.
• No tests.
• Every single WordPress site depending on it.
@obenland
The Themes API
• Still no tests.
• Based on WordPress now. Yay!
@obenland
feature_list
List of valid theme tags.
@obenland
hot_tags
Theme tags ordered by popularity.
@obenland
theme_information
Specific data for a single theme.
@obenland
query_themes
List of themes with specific data.
@obenland
The Theme Directory
@obenland
Putting it All Together
WordPress Themes API
Theme Directory Plugin
Themes Downloader
WP.org Directory Theme
Themes Trac
Themes SVN
@obenland
Demo!
@obenland
Still to Do
• Move ratings system to WordPress.
• Internationalize Themes API.
• Some mobile layout adjustments.
• Test!
@obenland
Halp!
@obenland
wordpress.org/themesnew
Location of the new Theme Directory.
@obenland
meta.trac.wordpress.org/ticket/745
Ticket to report bugs.
@obenland
make.wordpress.org/meta
Blog to follow for updates.
@obenland
URLs
• https://wordpress.org/themesnew/
• https://meta.trac.wordpress.org/ticket/745
• https://make.wordpress.org/meta/
@obenland
Konstantin Obenland
@obenland

konstantin.obenland.it
@obenland
Questions?
Automattic?
Themes?
WordPress.org?
WordPress.com?
Hooks?
Actions?
Filters?
Getting started?
PHP?CSS?
Germany?
Travel?
Contributing?
Documentation?
WordCamps?
Plugin Development?
Languages?
Translations?
SVN?
Core?
Cain & Obenland?
Default Themes?
Trac?
Template Tags?
_s?
Underscores?
Themes API?
Feature Plugins?
Code Formatting?

Más contenido relacionado

La actualidad más candente

Avninfosoft Seo strategy for 2014
Avninfosoft Seo strategy  for 2014Avninfosoft Seo strategy  for 2014
Avninfosoft Seo strategy for 2014Kaite Willson
 
Interns What Is DevOps
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOpsAaron Blythe
 
Laravelの良いところ
Laravelの良いところLaravelの良いところ
Laravelの良いところfagai
 
ExpressionEngine 2: Total Domination
ExpressionEngine 2: Total DominationExpressionEngine 2: Total Domination
ExpressionEngine 2: Total Dominationguestf9c0bc
 
Cassandra Summit 2014: Astyanax — To Be or Not To Be
Cassandra Summit 2014: Astyanax — To Be or Not To BeCassandra Summit 2014: Astyanax — To Be or Not To Be
Cassandra Summit 2014: Astyanax — To Be or Not To BeDataStax Academy
 
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...Amazon Web Services Korea
 
Quo vadis? - Future of Office 365 Apps & Services
Quo vadis? - Future of Office 365 Apps & ServicesQuo vadis? - Future of Office 365 Apps & Services
Quo vadis? - Future of Office 365 Apps & ServicesSPC Adriatics
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James ClanceyXamarin
 
Functions.php - It's Not Just For Developers
Functions.php - It's Not Just For DevelopersFunctions.php - It's Not Just For Developers
Functions.php - It's Not Just For DevelopersEric Mann
 
Deployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventDeployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventAmazon Web Services
 
RBC Mod 1: Making a New Rails App
RBC Mod 1: Making a New Rails AppRBC Mod 1: Making a New Rails App
RBC Mod 1: Making a New Rails Appameedahc
 
Ankoder System Architecture
Ankoder System ArchitectureAnkoder System Architecture
Ankoder System ArchitectureRex Chung
 
Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015sean_seannery
 
Contributing to Impala
Contributing to ImpalaContributing to Impala
Contributing to ImpalaCloudera, Inc.
 
Test driven APIs with Laravel
Test driven APIs with LaravelTest driven APIs with Laravel
Test driven APIs with LaravelMichael Peacock
 
How to Evaluate an API Without Writing a Line of Code
How to Evaluate an API Without Writing a Line of CodeHow to Evaluate an API Without Writing a Line of Code
How to Evaluate an API Without Writing a Line of Codeduvander
 
An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQSteve Pember
 
Challenges of moving a java team to scala
Challenges of moving a java team to scalaChallenges of moving a java team to scala
Challenges of moving a java team to scalaJoão Cavalheiro
 

La actualidad más candente (20)

Avninfosoft Seo strategy for 2014
Avninfosoft Seo strategy  for 2014Avninfosoft Seo strategy  for 2014
Avninfosoft Seo strategy for 2014
 
Interns What Is DevOps
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOps
 
Laravelの良いところ
Laravelの良いところLaravelの良いところ
Laravelの良いところ
 
ExpressionEngine 2: Total Domination
ExpressionEngine 2: Total DominationExpressionEngine 2: Total Domination
ExpressionEngine 2: Total Domination
 
Cassandra Summit 2014: Astyanax — To Be or Not To Be
Cassandra Summit 2014: Astyanax — To Be or Not To BeCassandra Summit 2014: Astyanax — To Be or Not To Be
Cassandra Summit 2014: Astyanax — To Be or Not To Be
 
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...
[AWS Media Symposium 2019] 고객사례 | Live cast "ScreenX" over AWS Cloud - 이두희, 최...
 
Quo vadis? - Future of Office 365 Apps & Services
Quo vadis? - Future of Office 365 Apps & ServicesQuo vadis? - Future of Office 365 Apps & Services
Quo vadis? - Future of Office 365 Apps & Services
 
Git store
Git storeGit store
Git store
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey
 
Functions.php - It's Not Just For Developers
Functions.php - It's Not Just For DevelopersFunctions.php - It's Not Just For Developers
Functions.php - It's Not Just For Developers
 
Deployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventDeployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup Event
 
Debugging Tips and Tricks
Debugging Tips and TricksDebugging Tips and Tricks
Debugging Tips and Tricks
 
RBC Mod 1: Making a New Rails App
RBC Mod 1: Making a New Rails AppRBC Mod 1: Making a New Rails App
RBC Mod 1: Making a New Rails App
 
Ankoder System Architecture
Ankoder System ArchitectureAnkoder System Architecture
Ankoder System Architecture
 
Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015
 
Contributing to Impala
Contributing to ImpalaContributing to Impala
Contributing to Impala
 
Test driven APIs with Laravel
Test driven APIs with LaravelTest driven APIs with Laravel
Test driven APIs with Laravel
 
How to Evaluate an API Without Writing a Line of Code
How to Evaluate an API Without Writing a Line of CodeHow to Evaluate an API Without Writing a Line of Code
How to Evaluate an API Without Writing a Line of Code
 
An Introduction to jOOQ
An Introduction to jOOQAn Introduction to jOOQ
An Introduction to jOOQ
 
Challenges of moving a java team to scala
Challenges of moving a java team to scalaChallenges of moving a java team to scala
Challenges of moving a java team to scala
 

Destacado

Twenty Thirteen - Ins and Outs of Developing a Default Theme
Twenty Thirteen - Ins and Outs of Developing a Default ThemeTwenty Thirteen - Ins and Outs of Developing a Default Theme
Twenty Thirteen - Ins and Outs of Developing a Default ThemeKonstantin Obenland
 
Lessons Learned from Contributing to Default Themes
Lessons Learned from Contributing to Default ThemesLessons Learned from Contributing to Default Themes
Lessons Learned from Contributing to Default ThemesKonstantin Obenland
 

Destacado (6)

Actions & Filters In WordPress
Actions & Filters In WordPressActions & Filters In WordPress
Actions & Filters In WordPress
 
The Theme Review Process
The Theme Review ProcessThe Theme Review Process
The Theme Review Process
 
Twenty Thirteen - Ins and Outs of Developing a Default Theme
Twenty Thirteen - Ins and Outs of Developing a Default ThemeTwenty Thirteen - Ins and Outs of Developing a Default Theme
Twenty Thirteen - Ins and Outs of Developing a Default Theme
 
Lessons Learned from Contributing to Default Themes
Lessons Learned from Contributing to Default ThemesLessons Learned from Contributing to Default Themes
Lessons Learned from Contributing to Default Themes
 
Contributing to WordPress
Contributing to WordPressContributing to WordPress
Contributing to WordPress
 
The Customizer
The CustomizerThe Customizer
The Customizer
 

Similar a New Theme Directory

WordPress and Child Themes
WordPress and Child ThemesWordPress and Child Themes
WordPress and Child Themesnairobiwordcamp
 
Developing client themes for theme review for WordCamp Edmonton
Developing client themes for theme review for WordCamp EdmontonDeveloping client themes for theme review for WordCamp Edmonton
Developing client themes for theme review for WordCamp EdmontonCurtis McHale
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and SecurityJoe Casabona
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityMichelle Davies (Hryvnak)
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Mike Schinkel
 
NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?Eberhard Wolff
 
WP101 - Themes and Plugins
WP101 - Themes and PluginsWP101 - Themes and Plugins
WP101 - Themes and PluginsJoe Querin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Child themes
Child themesChild themes
Child themesbobwlsn
 
Building a Simple Theme Framework
Building a Simple Theme FrameworkBuilding a Simple Theme Framework
Building a Simple Theme FrameworkJoe Casabona
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016David Brattoli
 
Customizing the custom loop wordcamp 2012-jeff
Customizing the custom loop   wordcamp 2012-jeffCustomizing the custom loop   wordcamp 2012-jeff
Customizing the custom loop wordcamp 2012-jeffAlexander Sapountzis
 
WordPress Theme Reviewers Team
WordPress Theme Reviewers TeamWordPress Theme Reviewers Team
WordPress Theme Reviewers TeamMario Peshev
 
EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2ryanirelan
 
WP 101 - Local Development - Themes and Plugins
WP 101 - Local Development - Themes and PluginsWP 101 - Local Development - Themes and Plugins
WP 101 - Local Development - Themes and PluginsJoe Querin
 
WordPress Theme Workshop: Part 1
WordPress Theme Workshop: Part 1WordPress Theme Workshop: Part 1
WordPress Theme Workshop: Part 1David Bisset
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
 
Apache Solr - search for everyone!
Apache Solr - search for everyone!Apache Solr - search for everyone!
Apache Solr - search for everyone!Jaran Flaath
 
Neo4j Training Cypher
Neo4j Training CypherNeo4j Training Cypher
Neo4j Training CypherMax De Marzi
 

Similar a New Theme Directory (20)

WordPress and Child Themes
WordPress and Child ThemesWordPress and Child Themes
WordPress and Child Themes
 
Developing client themes for theme review for WordCamp Edmonton
Developing client themes for theme review for WordCamp EdmontonDeveloping client themes for theme review for WordCamp Edmonton
Developing client themes for theme review for WordCamp Edmonton
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and Security
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & Security
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)
 
NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?
 
WP101 - Themes and Plugins
WP101 - Themes and PluginsWP101 - Themes and Plugins
WP101 - Themes and Plugins
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Child themes
Child themesChild themes
Child themes
 
Building a Simple Theme Framework
Building a Simple Theme FrameworkBuilding a Simple Theme Framework
Building a Simple Theme Framework
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
 
Customizing the custom loop wordcamp 2012-jeff
Customizing the custom loop   wordcamp 2012-jeffCustomizing the custom loop   wordcamp 2012-jeff
Customizing the custom loop wordcamp 2012-jeff
 
WordPress Theme Reviewers Team
WordPress Theme Reviewers TeamWordPress Theme Reviewers Team
WordPress Theme Reviewers Team
 
EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2EECI 2010: Upgrading to EE 2
EECI 2010: Upgrading to EE 2
 
WP 101 - Local Development - Themes and Plugins
WP 101 - Local Development - Themes and PluginsWP 101 - Local Development - Themes and Plugins
WP 101 - Local Development - Themes and Plugins
 
WordPress Theme Workshop: Part 1
WordPress Theme Workshop: Part 1WordPress Theme Workshop: Part 1
WordPress Theme Workshop: Part 1
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
 
Discover Music
Discover MusicDiscover Music
Discover Music
 
Apache Solr - search for everyone!
Apache Solr - search for everyone!Apache Solr - search for everyone!
Apache Solr - search for everyone!
 
Neo4j Training Cypher
Neo4j Training CypherNeo4j Training Cypher
Neo4j Training Cypher
 

Más de Konstantin Obenland

Más de Konstantin Obenland (8)

Shiny Updates, A Feature Plugin in Two Acts
Shiny Updates, A Feature Plugin in Two ActsShiny Updates, A Feature Plugin in Two Acts
Shiny Updates, A Feature Plugin in Two Acts
 
Lessons from WordPress 4.3
Lessons from WordPress 4.3Lessons from WordPress 4.3
Lessons from WordPress 4.3
 
WordPress 4.1
WordPress 4.1WordPress 4.1
WordPress 4.1
 
Underscores DE
Underscores DEUnderscores DE
Underscores DE
 
Cain & Obenland — Episode 4
Cain & Obenland — Episode 4Cain & Obenland — Episode 4
Cain & Obenland — Episode 4
 
Options, and Transients, and Theme Mods — Oh my!
Options, and Transients, and Theme Mods — Oh my!Options, and Transients, and Theme Mods — Oh my!
Options, and Transients, and Theme Mods — Oh my!
 
Organisation von Selbstorganisation
Organisation von SelbstorganisationOrganisation von Selbstorganisation
Organisation von Selbstorganisation
 
Self-Organizing Teams In Scrum
Self-Organizing Teams In ScrumSelf-Organizing Teams In Scrum
Self-Organizing Teams In Scrum
 

Último

Cybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesCybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesLumiverse Solutions Pvt Ltd
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxAndrieCagasanAkio
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxMario
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119APNIC
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxmibuzondetrabajo
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxNIMMANAGANTI RAMAKRISHNA
 

Último (9)

Cybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesCybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best Practices
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptx
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptx
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptx
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptx
 

New Theme Directory