<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Or even just an example of a theme you've done this in?<br>
<br>
<br>
On 5/2/11 7:42 AM, Josh Stauffer wrote:
<blockquote
cite="mid:BANLkTimh4ifTLqW_iw3qG5ydUFvEXHRECw@mail.gmail.com"
type="cite">
<div>Just as Chip described is how I am going about it in my theme
development.</div>
<div><br>
</div>
<div>Although, I am interested to find out more about the
"automatic install and activate" that Ryan is referring to. Any
tutorials on this?</div>
<br clear="all">
Josh<br>
<br>
<br>
<div class="gmail_quote">On Mon, May 2, 2011 at 9:15 AM, Chip
Bennett <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:chip@chipbennett.net">chip@chipbennett.net</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
That's a good distinction: simply bundling "plugin.zip" into
the Theme is, IMHO, absolutely inappropriate. Simply add
installation instructions that the Theme relies on "Plugin X',
and to install the Plugin from the repository. Also, in all
instances, any Theme dependent upon a Plugin MUST degrade
gracefully, such that it functions acceptably without the
Plugin.
<div>
<br>
</div>
<div>As to what Plugin code is suitable for incorporation: I
think that, as long as the functionality is Theme-related
(and, clearly, SEO functionality IS Theme-related, since SEO
is entirely Theme-dependent), it is fair game. But, the
Theme developer who chooses to incorporate such
functionality into the Theme then bears the burden of fully
maintaining that incorporated code. It is an issue for the
Theme Review Team, since we then take on the burden of
reviewing such extra functionality - but then, in the end,
that's our job.</div>
<div><br>
</div>
<div>On the other hand, just as we exclude non-Theme-related
functionality as "Plugin territory", I think we should hold
the same standard for incorporated Plugins. To be explicit:
Theme functionality should involve the *presentation* of
content; anything that involves the *creation* or
*management* of content should be left to Plugins.</div>
<div><br>
</div>
<div>Also, regarding "best practices", I will add: I think the
"best practice" recommendation should be that Themes, if
they choose, should incorporate *support* for a given
Plugin, rather than incorporating the Plugin code itself.
One example might be the WP-PageNavi Plugin, which can be
supported as easily as adding:</div>
<div><br>
</div>
<blockquote style="margin: 0pt 0pt 0pt 40px; border: medium
none; padding: 0px;">
<div><span style="font-family:
helvetica,arial,freesans,clean,sans-serif; font-size:
11px; line-height: 14px;">
<pre style="margin: 0px; padding: 0px; line-height: 1.4em; font-family: 'Bitstream Vera Sans Mono','Courier New',monospace; font-size: 12px;"><div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold;">if</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 134, 179);">function_exists</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">'wp_paginate'</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">)</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">)</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">{</span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;">        <span style="margin: 0px; padding: 0px; line-height: 1.4em;">wp_paginate</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">'title='</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">);</span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em;">}</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold;">else</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">{</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;"></span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em;">        <font color="#999999"><b>// do something else instead</b></font></span><span style="margin: 0px; padding: 0px; line-height: 1.4em;"></span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em;">}</span></div>
</pre>
</span></div>
</blockquote>
<div><br>
</div>
<div>Or, for Yoast Breadcrumbs:</div>
<div><br>
</div>
<blockquote style="margin: 0pt 0pt 0pt 40px; border: medium
none; padding: 0px;">
<div><span style="font-family:
helvetica,arial,freesans,clean,sans-serif; font-size:
11px; line-height: 14px;">
<pre style="margin: 0px; padding: 0px; line-height: 1.4em; font-family: 'Bitstream Vera Sans Mono','Courier New',monospace; font-size: 12px;"><div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold;">if</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(0, 134, 179);">function_exists</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span><span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">'yoast_breadcrumb'</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">)</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">)</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">{</span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;">        <span style="margin: 0px; padding: 0px; line-height: 1.4em;">yoast_breadcrumb</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">(</span><span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">'<li id="breadcrumbs">'</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">,</span><span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(221, 17, 68);">'</li>'</span><span style="margin: 0px; padding: 0px; line-height: 1.4em;">);</span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em;">}</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold;">else</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em;">{</span></div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;">        // do something else instead</div>
<div style="margin: 0px; padding: 0px 0px 0px 1em; line-height: 1.4em;"><span style="margin: 0px; padding: 0px; line-height: 1.4em;">}</span> <span style="margin: 0px; padding: 0px; line-height: 1.4em; color: rgb(153, 153, 153); font-weight: bold;">?></span></div>
</pre>
</span></div>
</blockquote>
<div><br>
</div>
<div>This method allows for graceful degradation, and does not
encumber the Theme developer with maintaining someone else's
code.</div>
<div><br>
</div>
<div><font color="#888888">Chip<br>
<br>
</font>
<div class="gmail_quote">
<div>
<div class="h5">
On Mon, May 2, 2011 at 8:57 AM, Ryan Hellyer <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:ryan@pixopoint.com" target="_blank">ryan@pixopoint.com</a>></span>
wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div>
<div class="h5">
<div>There are situations in which it makes sense to
build a theme which relies on specific plugins to
function, but it is often not a good idea to
incorporate the entire code base into the theme
since the plugin may be under active development.
In this situation I tend to have the plugin
automatically install and activate the plugin(s).
I think it would be a good idea if this sort of
situation was allowed in the theme repository.</div>
<div><br>
</div>
<div>Simply bundling the plugins zip file into the
theme and requiring the user to copy the files
over seems counter productive though and shouldn't
be allowed IMO since the user could just as easily
get the plugin from the repository instead.</div>
<div><br>
</div>
<div>There are some excellent themes in the
repository which incorporate large amounts of
"plugin like" functionality so I would assume that
seamlessly integrated functionality would be
deemed appropriate for the repository.</div>
<div><br>
</div>
<div>Just taking something like Yoasts SEO plugin
and dumping it verbatim into a theme would be
plain weird and shouldn't be allowed though IMO,
as it would include a bunch of text unrelated to
the theme and create confusion for the user.
However if it were integrated seamlessly and
cleanly, then I don't see any problems with that
approach, albeit I personally would never roll
that much SEO functionality into a theme.</div>
<div><br>
</div>
<font color="#888888">
<div>
<div>Ryan,</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div><br>
</div>
</font><br>
</div>
</div>
<div class="im">_______________________________________________<br>
theme-reviewers mailing list<br>
<a moz-do-not-send="true"
href="mailto:theme-reviewers@lists.wordpress.org"
target="_blank">theme-reviewers@lists.wordpress.org</a><br>
<a moz-do-not-send="true"
href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers"
target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
_______________________________________________<br>
theme-reviewers mailing list<br>
<a moz-do-not-send="true"
href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
<a moz-do-not-send="true"
href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers"
target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br>
</blockquote>
</div>
<br>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
theme-reviewers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a>
<a class="moz-txt-link-freetext" href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a>
</pre>
</blockquote>
</body>
</html>