<!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">&lt;<a moz-do-not-send="true"
            href="mailto:chip@chipbennett.net">chip@chipbennett.net</a>&gt;</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.&nbsp;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);">'&lt;li id="breadcrumbs"&gt;'</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);">'&lt;/li&gt;'</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;">?&gt;</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">&lt;<a moz-do-not-send="true"
                      href="mailto:ryan@pixopoint.com" target="_blank">ryan@pixopoint.com</a>&gt;</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>