[aur-dev] [PATCH v6] pkg_details.php: Show keywords

Lukas Fleischer lfleischer at archlinux.org
Thu Jun 18 07:14:23 UTC 2015


On Thu, 18 Jun 2015 at 00:57:14, Marcel Korpel wrote:
> Keywords are hyperlinked so a user can search for other packages with
> the same name and/or keyword.
> 

Nice addition, thanks!

> Signed-off-by: Marcel Korpel <marcel.korpel at gmail.com>
> ---
> Small improvement to make the focus border stick out of the focused
> element.
> 
>  web/html/css/aurweb.css      | 23 +++++++++++++++++++++++
>  web/template/pkg_details.php | 19 +++++++++++++++++--
>  2 files changed, 40 insertions(+), 2 deletions(-)
> 
> diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css
> index a3f43bd..7f63abb 100644
> --- a/web/html/css/aurweb.css
> +++ b/web/html/css/aurweb.css
> @@ -53,6 +53,29 @@
>         text-align:right;
>  }
>  
> +td#keywords {
> +       white-space: normal;
> +}

Is this needed?

> +
> +.keyword:link, .keyword:visited {
> +       float: left;
> +       margin: 1px 2px 1px 0;
> +       border: 1px solid transparent;
> +       padding: 2px .5em;
> +       background: #1794D1;
> +       color: #FFF;
> +       border-radius: 2px;
> +}
> +
> +.keyword:hover {
> +       color: #FFF;
> +       cursor: pointer;
> +}
> +
> +.keyword:focus {
> +       border: 1px dotted #000;
> +}
> +

I tried the following CSS instead:

    .keyword:link, .keyword:visited {
    	float: left;
    	margin: 1px .5ex 1px 0;
    	padding: 0 1em;
    	color: white;
    	background-color: #36a;
    	border-radius: 2px;
    }
    
    .keyword:hover {
    	cursor: pointer;
    }

I like the darker colors better. Opinions?

>  .text-button {
>         background: transparent;
>         border: none !important;
> diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
> index ae49e24..8cae135 100644
> --- a/web/template/pkg_details.php
> +++ b/web/template/pkg_details.php
> @@ -190,11 +190,14 @@ $sources = pkg_sources($row["ID"]);
>                         <td><a href="<?= htmlspecialchars($row['URL'], ENT_QUOTES) ?>" title="<?= __('Visit the website for') . ' ' . htmlspecialchars( $row['Name'])?>"><?= htmlspecialchars($row['URL'], ENT_QUOTES) ?></a></td>
>                 </tr>
>  <?php
> -if (has_credential(CRED_PKGBASE_SET_KEYWORDS, array($row["MaintainerUID"]))):
> +if (has_credential(CRED_PKGBASE_SET_KEYWORDS, array($row["MaintainerUID"])) || count($keywords) > 0):
>  ?>
>                 <tr>
>                         <th><?= __('Keywords') . ': ' ?></th>
> -                       <td>
> +                       <td id="keywords">
> +<?php
> +       if (has_credential(CRED_PKGBASE_SET_KEYWORDS, array($row["MaintainerUID"]))):

Don't indent here, please.

> +?>
>                                 <form method="post" action="<?= htmlspecialchars(get_pkgbase_uri($row['BaseName']), ENT_QUOTES); ?>">
>                                         <div>
>                                                 <input type="hidden" name="action" value="do_SetKeywords" />
> @@ -205,6 +208,18 @@ if (has_credential(CRED_PKGBASE_SET_KEYWORDS, array($row["MaintainerUID"]))):
>                                                 <input type="submit" value="<?= __('Update') ?>"/>
>                                         </div>
>                                 </form>
> +<?php
> +       else:

Again, no indentation here.

> +               foreach ($keywords as $kw) {
> +                       echo '                          <a class="keyword" href="';

Please also drop the printed whitespace. We do not care about the
formatting of the output and this makes the source code slightly harder
to read.

> +                       /* Several default search parameters are hard-coded,
> +                          perhaps this should be changed/configured somewhere */
> +                       echo get_uri('/packages/') . '?O=0&SeB=nd&K=' . urlencode($kw);
> +                       echo '&outdated=&SB=p&SO=a&PP=50&do_Search=Go';
> +                       echo '">' . htmlspecialchars($kw) . "</a>\n";

There's no need to specify all these values. Just specify the parameters
that are needed (K and SB). The remaining values will be initialized
with the corresponding default values automatically.

> +               }
> +       endif;
> +?>

All these changes need to be made in pkgbase_details.php as well. It
would be desirable to get rid of this code duplication but for now,
every change needs to be made in both places.

>                         </td>
>                 </tr>
>  <?php endif; ?>
> -- 
> 2.4.4


More information about the aur-dev mailing list