Personal Details
Name: Deepak Seth
Email: [email protected]
GTalk: [email protected]
IRC Nick: INDK
Phone number: +91 98719 40581
University Name: Uttar Pradesh Technical University, INDIA
Years completed: Three (May’10)
PHP Experience Level: Intermediate
WordPress Experience Level: Plugin/Theme Developer
.
Project Description
Child Theme was introduced long back in WordPress 2.7. They are used to modify an existing theme (Parent Theme) design and can be used to add more functionality to it. It can be as simple as a single CSS style sheet (A style sheet language used to describe the presentation semantics of a document written in a markup language – Wikipedia) in a directory. As the child theme are placed outside the Parent Theme directory, so changes made to Child Theme are available even if the Parent theme is updated. Detailed information is available here for reference.
I Plan my development as changes to WordPress Core to improve the adoption of Child Themes by WordPress. The changes I make help WordPress site Administrator to efficiently manage Child themes from their WordPress Administration panel.
For my proposal I assume that WordPress Theme Repository supports Child Theme and they are available to download from there.
ISSUES WITH WordPress Administration Panel
1. Support for Child Theme Installation: WordPress admin panel provides no automated support for Child Theme Installation. There are no ways by which you can download and activate a Child Theme automatically. Though manually it is can be installed but the process doesn’t verify its compatibility with its Parent Theme.Proposed Workflow in progress
- If user tries to install child theme(Manually)
- Parent theme exist
- Parent version is compatible
- install theme
- Parent version is not compatible
- sol1: die with error incompatible parent theme
- sol2: download and upgrade existing parent theme
- sol3: let user download and upgrade manually
- Parent version is compatible
- Parent theme doesn’t exist
- sol1: die with error
- sol2: download and install the parent theme
- what if WP theme repo doesn’t have compatible version
- sol: version check before downloading theme from repo.
- what if WP theme repo doesn’t have the theme.
- sol: die with error.
- what if WP theme repo doesn’t have compatible version
- Parent theme exist
- If user tries to install child theme (Automatically) from WP admin
- Parent theme exist
- Parent version is compatible
- download only child theme and install theme
- Parent version is not compatible
- sol1: die with error _incompatible parent theme_
- sol2: download bundled version and upgrade existing parent theme and install new child theme as well.
- Parent version is compatible
- Parent theme doesn’t exist
- sol1: die with error
- sol2: download and install the bundled parent+child theme.
- Parent theme exist
2. Support for Multiple Child Theme Management: WordPress does not have or recently plans to have support to manage Multiple Child themes of a single Parent theme under one page.
3. Support for Child Theme Update: WordPress doesn’t have any support for automatic update of Child Theme. It is also a problematic area because it may involve update of Parent theme as well.
- If user tries to update parent theme
- Child theme is deactivated and is marked.though the site owner can reactivate it,as it might be yet supported.
- If user tries to update child theme
- Parent theme is to be updated first else child theme can not be updated.(can only be done if there is a chance of automatic update).
- If child theme is updated and parent theme is same then Child theme becomes incompatible and is deactivated and a warning is shown to administrator when activated.
4. Child Theme removal complicity: Child Theme removal involves many issues, like its dependency on Parent theme should not be broken, which is currently not managed in WordPress.
- If user tries to delete Child Theme
- No issues involved and hence can delete it.
- If user tries to delete Parent Theme having Child Theme
- Not Allowed
- He has to first remove all Child Theme before Removing Parent Theme.
- Not Allowed
5. Enhanced Theme Editor: The current Theme editor has very little support for Child Themes and even there is mixup between parent theme files and Child Theme files which creates a lot of confusion. Its time for WordPress to enhance the Theme editing capability and provide a great platform for its development.
- Why this is required : There is a vast difference between a user and developer. A user most of the time is not familiar with CSS (Cascading Style Sheet), and thus he is not willing to modify any part of the theme as he might get into trouble, but I want that the user gets the ability to change some part of visual semantics of his page.
- How it will be done : The idea could be implemented as a part of WordPress core or as an extended plugin.
- What it will do:
- Can be used to edit CSS of theme visually, by directly clicking on the page element and changing its properties.
- Can be used as the regular code editor( As it exists today). It Will continue to support other files even.
- Increased Support for Child Theme.
- Possiblity of creating new Child Themes directly from WordPress admin panel.
A Comparision-
WordPress 3.0 Theme related feature includes
- A better tabbed UI for downloading and management of Main Themes only.(No Support for Child Themes)
- Adds a New Twenty Ten Theme
- Theme Editor For Child Theme(Unresolved-Ticket #12716 )
- Custom Site Background Support(Great Feature)
My Enhancements for Administration Side Will include
- User Interface for Management of Child Themes.(Probably an AJAX interface)
- Enhance Theme Editor to support Child Themes, and allow features to create Child Themes online.
- Support for version checking of child theme and their parent theme so as to find if they are compatible with each other.
WordPress 3.0 is in Beta currently and there is still no good support for Child Theme by WordPress. I will try to enhance the Child Theme experience for the WordPress user.
.
Schedule of Deliverables
As I’ll be having my semester exams so I might go a bit out of schedule. So I’ll be starting off early.
- By 10’April I’ll be having a decent start and begin to understand the plugin framework for implementation over bbPress.I’ll get to understand the problems i might be facing.
- From 25’ April to 20 May I’ll be having my Semester exams so I would be busy with studies.
- First Week (24 May) Determine the current work done in the theme repository and work out the further plans with mentor. Gather all information on how the themes repository is planned for future.
- Second Week(31 May) Determine the basic framework and begin coding.(Discuss further coding plans with mentor)
- Third Week(7 June) Coding of the main issues that involves the installation, update and removal of Child Themes.
- Fourth Week(14 June) Continuing to code the same and clarify the development problems.
- Fifth Week (21 June) Completing the code of main issues and begin the workflow of Child Theme Management page.
- Sixth Week(28 June) Designing the front end of Child Themes management.
- Seventh Week(5 July) Complete the final coding and fix the bugs.
- Eighth Week(12 July) Submit the code for Mid Term Evaluation.
- Ninth Week(19 July) Planning out the Theme editor and its design.
- Tenth Week(26 July) Creating the framework for the Visual editor.
- Eleventh Week(2 Aug) Integrating the framework and coding the final editor.
- Twelveth Week(9 Aug) Finalizing the fronted,its testing and Finalizing documentation.
16 Aug -Firm Pencil down date by Google.Final Submission.
I won’t be having any major commitment during this duration.
.
Open Source Development Experience
PHP Experience
I have been writing PHP since last 2 years and have enjoyed every line of code that I have written.
WordPress Experience
I haven’t been much active as a developer in the WordPress community but I do understand the working of WordPress, as I have been working with site development using WordPress(Link in my Work Experience section). As I am not having any experience in the community I attempted for a patch on Ticket #12763, “Last edited by” not correct username, which I think I have done correctly as it worked for me.
I have been involved in debugging and adding features to plugin, ”WP Forum Server”, But as I was not the author of the plugin, and there was a change in owner so no credit goes to me now, though I coded and gave support to many users of the plugin. I Have deployment and customization experience working with DRUPAL(http://www.carnidreamz.in), SILVERSTRIPE, Jabber (XMPP).
.
Work Experience
I interned last year at Shankar InfoTech (Jamshedpur, India).As an intern my responsibilities included making a CMS based on PHP/MYSQL for making customizable school profile website for the city(currently in BETA). My job also included making a education portal for the city which includes various section related to city requirements which is based on WordPress. (http://www.jsrschools.com).
I have been into Freelance web development since last 5 years and have made other websites the details are included in my CV. I made a simple site for a real estate company using PHP without using any CMS, (http://www.shantivalley.com). I have also been involved in graphics development in recent time.
.
Academic Experience
I am currently enrolled in 4 year Full time B.Tech course in Computer Science and Engineering at Priyadarshini College of Computer Sciences, Greater Noida-INDIA. I am currently in 3rd Year of the course.I am expected to graduate in 2011.
I have been studying Data Structures, Programming Language Principles, Design and analysis of Algorithms, Object Oriented Concept, Artificial Intelligence (Current).I am currently having 67% in acedemics.Though i am bit less on grades yet it won’t be a hurdle in the task. I won’t be using GSOC for any credit from university.
.
Why WordPress
During the last two years of my development experience I have found WordPress to be the best available Blogging/CMS in the market which gives excellent flexibility in its administration as well as customization. From my last experience with WordPress I have become a fan of WordPress. As WordPress is an open source project so working and coding for it makes me feel good.
Even after GSOC I’ll be involved in development of WordPress plugins and improvement of WordPress, as I like challenges and by the time GSOC will be over I’ll definitely have something new to be done with WordPress.
.
Notes
The workflow mentioned above are only proposed solution, though actual solution may be different. My initial proposal was to add the support of Child Themes to WordPress theme repository, but after talking to Joseph Scott i got to know that he had already worked it out. So i changed my proposal regarding working over the WordPress core.
———————————————
Thanks to Lloyd Budd, John Godley for helping me with my proposal. I am very much thankful to Joseph Scott for guiding me to complete the proposal yet again.
1 thought on “GSOC Proposal : Child Themes”