I have just discoverThere are two methods below. Both are equally effective except the second one requires that apparently it was easier to do thisthe <button>
element be taken out of the list of links and put elsewhere in 6the template.x This is either annoying or awesome depending on what outcome you're going for.
Method 1: Override MYTHEME_links()
In Drupal 7, you can turn the comment "Reply" link into a <button>
element by overriding core's theme_links()
function. It isn't pretty, but it's effective.
The Solution: MYTHEME_links()
###Breaking it down...Breaking it down...
Unfortunately we can't use theme('button'...)
because that would give us an input element. Of course we could change that by overriding theme_button()
but that would affect all input elements on the site, and you would still need to override theme_links()
in order to call it.
###Method 2: MYTHEME_preprocess_comment()
If you don't mind taking "Reply" out of the links list altogether, this method will also work. It uses the comment preprocessor to unset the link, but not before taking the value of the URL and stuffing it into a new variable.
Again, add the function below to your theme's template.php file (replace "MYTHEME" with your theme name).
function MYTHEME_preprocess_comment(&$variables) {
if (isset($variables['content']['links']['comment']['#links']['comment-reply'])) {
$variables['reply_url'] = $variables['content']['links']['comment']['#links']['comment-reply']['href'];
unset($variables['content']['links']['comment']['#links']['comment-reply']);
}
}
Then add this (or a variation of it) wherever you would like it to appear in your copy of comment.tpl.php:
<?php if (isset($reply_url)): ?>
<button onclick="window.location.href='<?php print $reply_url ?>'">Reply</button>
<?php endif; ?>
Clear your cache for the change to take effect.