diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | web/html/account.php | 7 | ||||
-rw-r--r-- | web/html/css/arch.css | 459 | ||||
-rw-r--r-- | web/html/css/containers.css | 5 | ||||
-rw-r--r-- | web/html/css/fonts.css | 9 | ||||
-rw-r--r-- | web/html/images/logo.png | bin | 0 -> 15730 bytes | |||
-rw-r--r-- | web/html/images/tab.png | bin | 0 -> 107 bytes | |||
-rw-r--r-- | web/html/images/title.png | bin | 0 -> 6465 bytes | |||
-rw-r--r-- | web/html/images/title_back.png | bin | 0 -> 168 bytes | |||
-rw-r--r-- | web/html/index.php | 17 | ||||
-rw-r--r-- | web/html/packages.php | 21 | ||||
-rw-r--r-- | web/html/pkgsubmit.php | 8 | ||||
-rw-r--r-- | web/lang/en/pkgfuncs_po.inc | 10 | ||||
-rw-r--r-- | web/lang/it/account_po.inc | 8 | ||||
-rw-r--r-- | web/lang/it/acctfuncs_po.inc | 6 | ||||
-rw-r--r-- | web/lang/it/index_po.inc | 20 | ||||
-rw-r--r-- | web/lang/it/pkgedit_po.inc | 6 | ||||
-rw-r--r-- | web/lang/it/pkgfuncs_po.inc | 60 | ||||
-rw-r--r-- | web/lang/it/submit_po.inc | 6 | ||||
-rw-r--r-- | web/lang/it/timeout_po.inc | 4 | ||||
-rw-r--r-- | web/lib/aur.inc | 166 | ||||
-rw-r--r-- | web/lib/pkgfuncs.inc | 403 |
22 files changed, 841 insertions, 377 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9e572ce --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.swp +web/lib/config.inc + diff --git a/web/html/account.php b/web/html/account.php index fd9cc61..3d98171 100644 --- a/web/html/account.php +++ b/web/html/account.php @@ -13,6 +13,10 @@ html_header(); # print out the HTML header # Main page processing here # +echo "<div class=\"pgbox\">\n"; +echo " <div class=\"pgboxtitle\"><span class=\"f3\">".__("Accounts")."</span></div>\n"; +echo " <div class=\"pgboxbody\">\n"; + if (isset($_COOKIE["AURSID"])) { # visitor is logged in # @@ -148,6 +152,9 @@ if (isset($_COOKIE["AURSID"])) { } } +echo " </div>"; +echo "</div>"; + html_footer("\$Id$"); # vim: ts=2 sw=2 noet ft=php ?> diff --git a/web/html/css/arch.css b/web/html/css/arch.css new file mode 100644 index 0000000..65f3cff --- /dev/null +++ b/web/html/css/arch.css @@ -0,0 +1,459 @@ +* { margin: 0; padding: 0; } +* ul { padding: 20px; } +body { + background: url("/images/title_back.png") repeat-x top left #fbf8f1; + padding: 0 30px; + color: #46494d; + font-family: Bitstream Vera Sans, Lucida Grande, Arial, sans-serif; +} +/* + * Divs + */ +#head_container { + height: 175px; +} +#main_nav ul { + list-style: none; + padding-right: 10px; + padding-top: 48px; +} +#main_nav ul li { + display: block; + float: right; + width: 67px; + height: 20px; + padding-top: 2px; + margin-left: 3px; + background: url("/images/tab.png") repeat-x bottom left #fbf8f1; + text-align: center; + font-size: 13px; +} +#main_nav ul li[class~=selected] { + background: #fbf8f1; +} +#main_nav ul li a { + text-decoration: none; +} +#sub_nav ul { + list-style: none; + padding-right: 10px; + padding-top: 5px; +} +#sub_nav ul li { + display: block; + float: right; + width: 87px; + height: 20px; + padding-top: 2px; + margin-left: 3px; + background: url("/images/tab.png") repeat-x bottom left #fbf8f1; + border: 1px solid #cccccc; + text-align: center; + font-size: 13px; +} +#sub_nav ul li[class~=selected] { + background: #fbf8f1; +} +#sub_nav ul li a { + text-decoration: none; +} + +#lang_sub { + display: block; + position: absolute; + top: 0; + right: 20px; +} +#lang_sub ul { + list-style: none; +} +#lang_sub ul a { + text-decoration: none; + color: #000000; +} +#lang_sub ul a:hover { + color: #FF0000; +} +#lang_sub ul li { + display: block; + float: right; + margin-left: 6px; + font-size: 10px; + text-align: center; +} + +#title { + height: 140px; + float: left; +} +#updates { + font-size: small; + /*position: relative;*/ + top: 0px; + background: #f6efe0; + border: 1px solid #eee4cb; + padding: 10px; +} +#ads { + float: right; +} +#logo { + float: left; + width: 140px; + height: 140px; +} +#titleimg { + float: left; +} +#devlist { + width: 80%; + padding: 10px; + margin-left: auto; + margin-right: auto; + border-top: 1px dashed black; + border-bottom: 1px dashed black; + text-align: center; +} +.clear { + clear: both; + margin: 0; + padding: 0; +} +.right { + float: right; + width: 320px; + padding: 0 10px 10px 0; +} +.left { + padding: 10px; + margin: 0 360px 0 0; +} +.left p { + text-align: justify; + padding-bottom: 10px; +} +.box { + padding: 10px; + background: #e1e3e6; + border: 1px solid #8faecd; +} +.greybox { + padding: 10px; + background: #f6efe0; + border: 1px solid #eee4cb; +} +div.listing { + padding-right: 10px; + border-left: 1px solid #387cbf; +} +.error { + color: #dd0000; + font-size: small; +} +.foot { + clear: both; + text-align: center; + font-size: 0.8em; +} +#search { + float: right; + position: relative; + top: -2em; + font-size: 0.8em; +} +#search input { + background: #f6efe0; + border: 1px solid #eee4cb; +} +.smalltext { + text-align: right; + font-size: x-small; +} +/* + * Headers + */ +h2 { + margin: 20px 0 10px 0; +} +h2.title { + border-bottom: 1px solid #46494d; +} +h3 { + margin-bottom: 10px; +} +h3.title { + text-align: right; + border-bottom: 1px solid #46494d; +} +h4.title { + text-align: left; + border-bottom: 1px solid #46494d; +} +h4.news { + border-bottom: 1px dotted #8faecd; +} +div.listing h4 { + background: #d1d3d6; + border-top: 1px double #387cbf; + padding: 3px; +} +/* + * Paragraphs, Anchors, Images + */ +p { + padding-bottom: 20px; +} +p.news { + text-align: left; + font-size: small; +} +a { + color: #35526f; + font-weight: bold; + text-decoration: underline; +} +.news a { + text-decoration: none; +} +#about { + position: relative; + top: -9px; +} +#about a { + text-decoration: none; +} +.community a { + text-decoration: none; +} +ol { + padding-left: 45px; +} +ul.small { + list-style: none; + font-size: x-small; +} +ul.links { + list-style: none; + font-size: small; + padding: 0px 0px 20px 20px; +} +img { + border: none; +} +hr { + border: none; + border-top: 1px solid #46494d; +} +.greybox input, button, textarea, select { + background: #e1e3e6; + border: 1px solid #8faecd; +} +.box input, button { + padding: 2px; + background: #c1c3f6; + font-size: x-small; + border: 1px solid #8faecd; +} +button#f_trigger { + background: #e1e3e6; +} +/* + * Table stuff + */ +table.center { + margin-left: auto; + margin-right: auto; +} +table#releases { + font-size: small; + width: 100%; +} +table#releases td { + padding-right: 20px; +} +table#repolinks { + font-size: small; + width: 100%; +} +table#repolinks td { + text-align: right; +} +table#repolinks th { + text-align: left; +} +table#art { + text-align: center; + margin-left: auto; + margin-right: auto; +} +.devpic { + vertical-align: top; + padding-right: 15px; +} +table.deventry { + padding-bottom: 25px; +} +.deventry th { + text-align: left; + vertical-align: top; + white-space: nowrap; +} +.deventry td { + border-bottom: 1px solid black; + width: 100%; +} +table.results { + padding: 0px; + border-collapse: collapse; +} +.results th { + background: #e1e3e6; + border-bottom: 1px solid #46494d; + border-top: 1px solid #46494d; + text-align: left; + padding-top: 0px; + padding-bottom: 0px; + padding-right: 5px; +} +.results th>a { + text-decoration: none; + color: #46494d; +} +.results td { + padding-right: 5px; + vertical-align: top; + font-size: 0.8em; +} +.listing th { + background: #d1d3d6; + border-left: 1px solid #387cbf; + font-size: small; + vertical-align: top; + text-align: left; + padding: 2px; +} +.listing td { + font-size: small; + padding: 2px; +} +blockquote.code { + background: #c1c3f6; + border: 1px solid #8faecd; + margin-left: auto; + margin-right: auto; + white-space: nowrap; + padding: 5px; + font-family: Courier, Courier New, Monospace; +} +/* + * Wiki Styles + */ +h1.wiki { + border-bottom: 1px solid #46494d; +} +div.wikifoot_l { + font-size: x-small; + text-align: left; + padding-top: 25px; +} +div.wikifoot_r { + font-size: x-small; + text-align: right; + float: right; + padding-top: 25px; +} +.wikibody { + padding-top: 15px; +} +.wikibody ol { + padding-left: 28px; + padding-top: 0px; +} +.wikibody ul { + padding-left: 25px; + padding-top: 0px; +} +.wikibody dd { + padding-left: 30px; +} +.wikibody pre code { + background: #c1c3f6; + border: 1px solid #8faecd; + margin-left: auto; + margin-right: auto; + white-space: nowrap; + padding: 5px; + font-family: Courier, Courier New, Monospace; +} +.wikibody blockquote { + padding-left: 30px; +} +.wikibody td { + padding: 5px; + border: 1px solid black; +} + +/* Used by Django's FormWrappers */ +textarea.vLargeTextField { + width: 450px; + height: 250px; +} +.pkgr2 { + background-color: #eee4cb; +} +#maincontent { + width: 100%; + text-align: left; +} +#maincontent > table { + width: 90%; + margin-left: 5%; + margin-right: 5%; +} +.pgbox { + width: 90%; + margin-left: 5%; + margin-right: 5%; + background-color: #ffffff; + border-width: 2px; + border-color: #dddddd; + border-style: solid; + text-align: left; + padding: 3px; +} +.frontpgboxbody { + padding: 10px; +} +.frontpgboxbody > table { + width: 100%; +} +.boxSoftTitle { + text-align: right; +} + +.pgboxtitle { + border-width: 2px; + border-style: solid; + border-color: #dddddd; + border-top-width: 1px; + border-top-color: #ffffff; + border-left-width: 1px; + border-left-color: #ffffff; + background-color: #f1f2f4; + text-align: right; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 10px; +} +.pgboxbody, .pgboxbody-comment { + padding: 10px; +} +.pgboxbody input { + margin-right: 10px; +} + +.pgboxbody-comment > table { + border-collapse: separate; + border-spacing: 0 15px; +} + diff --git a/web/html/css/containers.css b/web/html/css/containers.css index 2a0a0e4..006c4ff 100644 --- a/web/html/css/containers.css +++ b/web/html/css/containers.css @@ -3,7 +3,6 @@ border: 0px;
margin: 0px;
padding: 0px;
- font-family: arial,verdana,tahoma;
}
/* Main Wrapper Data Format */
@@ -182,7 +181,6 @@ td.text
{
color: #000;
- font-family: verdana;
font-size: 12px;
}
th
@@ -198,7 +196,7 @@ input,textarea,select
{
background-color: rgb(108,131,176);
- font-family: courier;
+ font-family: monospace;
font-size: 12px;
background-color: #ccc;
border: #000000 1px solid;
@@ -210,6 +208,5 @@ background-color: #fff;
color: rgb(108,131,176);
border: 1px dashed rgb(108,131,176);
- font-family: trebuchet ms, tahoma, verdana;
font-size: 12px;
}
diff --git a/web/html/css/fonts.css b/web/html/css/fonts.css index 8a60e05..fdeddbe 100644 --- a/web/html/css/fonts.css +++ b/web/html/css/fonts.css @@ -2,11 +2,10 @@ span /* Applicable by default in all fonts */ { color: #666; - font-family: verdana, trebuchet ms, tahoma, luxi sans; + font-family: Bitstream Vera Sans, Lucida Grande, Arial, sans-serif; } span.f1 /* Important */ { - font-family: verdana; font-size: 20px; letter-spacing: 1px; } @@ -25,13 +24,11 @@ span.f4 /* Content Text */ { color: #444; - font-family: verdana; font-size: 12px; } span.f5 /* Content Small */ { color: #333; - font-family: trebuchet ms, tahoma, verdana; font-size: 11px; } span.f6 /* Red Message */ @@ -55,13 +52,11 @@ span.error /* Content Text */ { color: #900; - font-family: verdana; font-size: 12px; } span.warning /* Content Text */ { color: #C0C000; - font-family: verdana; font-size: 12px; } @@ -95,7 +90,6 @@ color: rgb( 201, 209, 226 ); font-weight: bold; font-size: 11px; - font-family: tahoma, trebuchet ms, verdana; padding-right: 8px; word-spacing: 8px; } @@ -104,7 +98,6 @@ color: #fff; font-weight: bold; font-size: 11px; - font-family: tahoma, trebuchet ms, verdana; padding-right: 8px; } diff --git a/web/html/images/logo.png b/web/html/images/logo.png Binary files differnew file mode 100644 index 0000000..b2b6d86 --- /dev/null +++ b/web/html/images/logo.png diff --git a/web/html/images/tab.png b/web/html/images/tab.png Binary files differnew file mode 100644 index 0000000..56d2e61 --- /dev/null +++ b/web/html/images/tab.png diff --git a/web/html/images/title.png b/web/html/images/title.png Binary files differnew file mode 100644 index 0000000..e16971a --- /dev/null +++ b/web/html/images/title.png diff --git a/web/html/images/title_back.png b/web/html/images/title_back.png Binary files differnew file mode 100644 index 0000000..95c98d7 --- /dev/null +++ b/web/html/images/title_back.png diff --git a/web/html/index.php b/web/html/index.php index d175797..4e38e1e 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -79,19 +79,19 @@ if (isset($_REQUEST["user"]) || isset($_REQUEST["pass"])) { html_header(); # Big Top Level Table (Table 1) -print "<table border='0' cellpadding='0' cellspacing='3' width='90%'>\n"; -print "<tr>\n"; +echo "<div class=\"pgbox\">\n"; +echo " <div class=\"pgboxtitle\"><span class=\"f3\">AUR-".__("Home")."</span></div>\n"; +echo " <div class=\"frontpgboxbody\">\n"; +echo "<table border='0' cellpadding='0' cellspacing='3' width='90%'>\n"; +echo "<tr>\n"; # MAIN: Top Left print "<td class='boxSoft' valign='top'>"; print "<p>".__("Welcome to the AUR! Please read the %hAUR User Guidelines%h and %hAUR TU Guidelines%h for more information.", array('<a href="http://wiki.archlinux.org/index.php/AUR_User_Guidelines">', '</a>', '<a href="http://wiki.archlinux.org/index.php/AUR_Trusted_User_Guidelines">', '</a>'))."<br>"; print __("Contributed PKGBUILDs <b>must</b> conform to the %hArch Packaging Standards%h otherwise they will be deleted!", array('<a href="http://wiki.archlinux.org/index.php/Arch_Packaging_Standards">', '</a>'))."</p>"; -#print "<p>".__("If you have feedback about the AUR, please leave it in %hFlyspray%h.", array('<a href="http://bugs.archlinux.org/index.php?tasks=all&project=2">', '</a>'))."<br>"; -#print __("Email discussion about the AUR takes place on the %sTUR Users List%s.", array('<a href="http://www.archlinux.org/mailman/listinfo/tur-users">', '</a>'))."</p>"; print "<p>".__("Remember to vote for your favourite packages!")."<br>"; print __("The most popular packages will be provided as binary packages in [community].")."</p>"; -#print "<p>".__("Though we can't vouch for their contents, we provide a %hlist of user repositories%h for your convenience.", array('<a href="http://wiki2.archlinux.org/index.php/Unofficial%20Repositories">', '</a>'))."</p>"; # MAIN: Top Right print "</td>"; @@ -178,9 +178,6 @@ print "</tr>"; print "</table>"; # End Table 2 -#print " <td> </td>"; -#print " <td align='left' valign='top' nowrap>\n"; - # MAIN: Bottom Right print "</td>"; print "<td class='boxSoft' valign='top'>"; @@ -357,8 +354,10 @@ print "</table>"; print " </td>"; print "</tr>\n"; print "</table>\n"; +echo "</div>\n"; # End Table 1 - +echo " </div>"; +echo "</div>"; html_footer("<b>Version 1.3.1</b> \$Id$"); # vim: ts=2 sw=2 noet ft=php ?> diff --git a/web/html/packages.php b/web/html/packages.php index 4cb8c47..0559060 100644 --- a/web/html/packages.php +++ b/web/html/packages.php @@ -66,6 +66,27 @@ if (isset($_REQUEST["do_Flag"])) { print "<p>\n"; print __("The selected packages have been flagged out-of-date."); print "</p>\n"; + + # notification by tardo. + $f_name = username_from_sid($_COOKIE['AURSID']); + $f_email = email_from_sid($_COOKIE['AURSID']); + $f_uid = uid_from_sid($_COOKIE['AURSID']); + $q = "SELECT Packages.Name, Users.Email, Packages.ID "; + $q.= "FROM Packages, Users "; + $q.= "WHERE Packages.ID IN (" . $flag .") "; + $q.= "AND Users.ID = Packages.MaintainerUID "; + $q.= "AND Users.ID != " . $f_uid; + $result = db_query($q, $dbh); + if (mysql_num_rows($result)) { + while ($row = mysql_fetch_assoc($result)) { + # construct email + $body = "Your package " . $row['Name'] . " has been flagged out of date by " . $f_name . ". You may view your package at:\nhttp://aur.archlinux.org/packages.php?do_Details=1&ID=" . $row['ID']; + $body = wordwrap($body, 70); + $headers = "To: ".$row['Email']."\nReply-to: nobody@archlinux.org\nFrom:aur-notify@archlinux.org\nX-Mailer: PHP\nX-MimeOLE: Produced By AUR\n"; + @mail(' ', "AUR Out-of-date Notification for ".$row['Name'], $body, $headers); + } + } + } else { print "<p>\n"; print __("You did not select any packages to flag."); diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php index 2e05f1c..abccd66 100644 --- a/web/html/pkgsubmit.php +++ b/web/html/pkgsubmit.php @@ -9,7 +9,9 @@ include("config.inc"); # configuration file with dir locations set_lang(); # this sets up the visitor's language check_sid(); # see if they're still logged in html_header(); # print out the HTML header -print "<center>\n"; +echo "<div class=\"pgbox\">\n"; +echo " <div class=\"pgboxtitle\"><span class=\"f3\">".__("Submit")."</span></div>\n"; +echo " <div class=\"pgboxbody\">\n"; # Debugging $DBUG = 0; @@ -665,8 +667,8 @@ if ($_COOKIE["AURSID"]) { print __("You must create an account before you can upload packages."); print "<br />\n"; } - -print "</center>\n"; +echo " </div>\n"; +echo "</div>\n"; html_footer("\$Id$"); # vim: ts=2 sw=2 noet ft=php ?> diff --git a/web/lang/en/pkgfuncs_po.inc b/web/lang/en/pkgfuncs_po.inc index 220cdb3..634f45a 100644 --- a/web/lang/en/pkgfuncs_po.inc +++ b/web/lang/en/pkgfuncs_po.inc @@ -31,7 +31,7 @@ $_t["en"]["Error retrieving package details."] = "Error retrieving package detai $_t["en"]["Description"] = "Description"; -$_t["en"]["My Packages"] = "My Packages"; +$_t["en"]["My Packages"] = "My Pkgs"; $_t["en"]["Keywords"] = "Keywords"; @@ -151,4 +151,10 @@ $_t["en"]["License"] = "License"; $_t["en"]["unknown"] = "unknown"; -?>
\ No newline at end of file +$_t["en"]["Required by"] = "Required by"; + +$_t["en"]["The above files have been verified (by %h%s%h) and are safe to use."] = "The above files have been verified (by %h%s%h) and are safe to use."; + +$_t["en"]["This package has been flagged out of date."] = "This package has been flagged out of date."; + +?> diff --git a/web/lang/it/account_po.inc b/web/lang/it/account_po.inc index 8c65697..be2aa70 100644 --- a/web/lang/it/account_po.inc +++ b/web/lang/it/account_po.inc @@ -5,19 +5,19 @@ include_once("translator.inc"); global $_t; -$_t["it"]["Use this form to update your account."] = "Utilizzare questo modulo per aggiornare un account."; +$_t["it"]["Use this form to update your account."] = "Utilizza questo modulo per aggiornare un account."; -$_t["it"]["Leave the password fields blank to keep your same password."] = "Lasciare vuoti i campi relativi alla password per mantenerla invariata."; +$_t["it"]["Leave the password fields blank to keep your same password."] = "Lascia vuoti i campi relativi alla password per mantenerla invariata."; $_t["it"]["You are not allowed to access this area."] = "Non si dispone dei permessi necessari per accedere."; $_t["it"]["Could not retrieve information for the specified user."] = "Non è stato possibile trovare le informazioni sull'utente specificato."; -$_t["it"]["Use this form to search existing accounts."] = "Utilizzare questo modulo per cercare account esistenti."; +$_t["it"]["Use this form to search existing accounts."] = "Utilizza questo modulo per cercare account esistenti."; $_t["it"]["You do not have permission to edit this account."] = "Non si dispone dei permessi necessari per modificare questo account."; -$_t["it"]["Use this form to create an account."] = "Utilizzare questo modulo per creare un account."; +$_t["it"]["Use this form to create an account."] = "Utilizza questo modulo per creare un account."; $_t["it"]["You must log in to view user information."] = "Bisogna essere autenticati per poter visualizzare le informazioni sull'utente."; diff --git a/web/lang/it/acctfuncs_po.inc b/web/lang/it/acctfuncs_po.inc index 26c4d4d..e08d342 100644 --- a/web/lang/it/acctfuncs_po.inc +++ b/web/lang/it/acctfuncs_po.inc @@ -47,7 +47,7 @@ $_t["it"]["Last Voted"] = "Ultimo votato"; $_t["it"]["Real Name"] = "Nome reale"; -$_t["it"]["Edit Account"] = "Modificare l'account"; +$_t["it"]["Edit Account"] = "Modifica l'account"; $_t["it"]["Password fields do not match."] = "I campi password non corrispondono."; @@ -61,11 +61,11 @@ $_t["it"]["No more results to display."] = "Non vi sono ulteriori risultati da v $_t["it"]["Type"] = "Tipo"; -$_t["it"]["Click on the Home link above to login."] = "Fare clic su Inizio per autenticarsi."; +$_t["it"]["Click on the Home link above to login."] = "Clicca su Inizio per autenticarti."; $_t["it"]["Sort by"] = "Ordina per"; -$_t["it"]["Re-type password"] = "Riscrivere la password"; +$_t["it"]["Re-type password"] = "Riscrivi la password"; $_t["it"]["Language is not currently supported."] = "Lingua attualmente non supportata."; diff --git a/web/lang/it/index_po.inc b/web/lang/it/index_po.inc index cef6e8c..e3e7a8c 100644 --- a/web/lang/it/index_po.inc +++ b/web/lang/it/index_po.inc @@ -5,9 +5,9 @@ include_once("translator.inc"); global $_t; -$_t["it"]["You must supply a password."] = "E' necessario inserire una password."; +$_t["it"]["You must supply a password."] = "È necessario inserire una password."; -$_t["it"]["You must supply a username."] = "E' necessario inserire il nome utente."; +$_t["it"]["You must supply a username."] = "È necessario inserire il nome utente."; $_t["it"]["After that, this can be filled in with more meaningful text."] = "Dopotutto, questo potrebbe essere riempito con un messaggio più significativo."; @@ -27,7 +27,7 @@ $_t["it"]["Error trying to generate session id."] = "Errore durante la generazio $_t["it"]["For now, it's just a place holder."] = "Per adesso, è solo un segnaposto."; -$_t["it"]["It's more important to get the login functionality finished."] = "E' più importante avere la funzionalità di autenticazione completata."; +$_t["it"]["It's more important to get the login functionality finished."] = "È più importante avere la funzionalità di autenticazione completata."; $_t["it"]["Error looking up username, %s."] = "Errore durante la ricerca del nome utente %s."; @@ -47,13 +47,13 @@ $_t["it"]["Email discussion about the AUR takes place on the %sTUR Users List%s. $_t["it"]["Recent Updates"] = "Aggiornamenti recenti"; -$_t["it"]["Welcome to the AUR! Please read the %hAUR User Guidelines%h and %hAUR TU Guidelines%h for more information. Contributed PKGBUILDs <b>must</b> conform to the %hArch Packaging Standards%h otherwise they will be deleted!"] = "Benvenuto in AUR! Per ottenere maggiori informazioni, leggere %hAUR User Guidelines%h e %hAUR TU Guidelines%h. I PKGBUILD inviati <b>devono</b> essere conformi agli %hArch Packaging Standards%h altrimenti saranno cancellati!"; +$_t["it"]["Welcome to the AUR! Please read the %hAUR User Guidelines%h and %hAUR TU Guidelines%h for more information. Contributed PKGBUILDs <b>must</b> conform to the %hArch Packaging Standards%h otherwise they will be deleted!"] = "Benvenuto in AUR! Per ottenere maggiori informazioni, leggi le %hAUR User Guidelines%h e %hAUR TU Guidelines%h. I PKGBUILD inviati <b>devono</b> essere conformi agli %hArch Packaging Standards%h altrimenti saranno cancellati!"; $_t["it"]["Community"] = "Community"; $_t["it"]["Package Counts"] = "Conteggio dei pacchetti"; -$_t["it"]["Welcome to the AUR! Please read the %hAUR User Guidelines%h and %hAUR TU Guidelines%h for more information."] = "Benvenuto in AUR! Per ottenere maggiori informazioni, leggere %hAUR User Guidelines%h e %hAUR TU Guidelines%h."; +$_t["it"]["Welcome to the AUR! Please read the %hAUR User Guidelines%h and %hAUR TU Guidelines%h for more information."] = "Benvenuto in AUR! Per ottenere maggiori informazioni, leggi le %hAUR User Guidelines%h e %hAUR TU Guidelines%h."; $_t["it"]["Unsupported"] = "Unsupported"; @@ -69,9 +69,9 @@ $_t["it"]["Packages in unsupported"] = "Pacchetti in unsupported"; $_t["it"]["Packages in [community]"] = "Pacchetti in [community]"; -$_t["it"]["Remember to vote for your favourite packages! The most popular packages are provided as binary packages in [community]."] = "Ricordate di votare i vostri pacchetti preferiti! I pacchetti più votati sono disponibili in [community] come precompilati."; +$_t["it"]["Remember to vote for your favourite packages! The most popular packages are provided as binary packages in [community]."] = "Ricorda di votare i tuoi pacchetti preferiti! I pacchetti più votati saranno disponibili in [community] come precompilati."; -$_t["it"]["Remember to vote for your favourite packages!"] = "Ricordate di votare i vostri pacchetti preferiti!"; +$_t["it"]["Remember to vote for your favourite packages!"] = "Ricorda di votare i tuoi pacchetti preferiti!"; $_t["it"]["The most popular packages will be provided as binary packages in [community]."] = "I pacchetti più votati saranno disponibili in [community] come precompilati."; @@ -85,10 +85,12 @@ $_t["it"]["Out-of-date"] = "Non aggiornati"; $_t["it"]["User Statistics"] = "Statistiche dell'utente"; -$_t["it"]["Flagged as safe by me"] = "Segnato come sicuro da me"; +$_t["it"]["Flagged as safe by me"] = "Pacchetti verificati"; -$_t["it"]["Flagged as safe"] = "Segnato come sicuro"; +$_t["it"]["Flagged as safe"] = "Considerato sicuro"; $_t["it"]["My Statistics"] = "Le mie statistiche"; +$_t["it"]["Home"] = "Inizio"; + ?>
\ No newline at end of file diff --git a/web/lang/it/pkgedit_po.inc b/web/lang/it/pkgedit_po.inc index 731904a..9df8ebc 100644 --- a/web/lang/it/pkgedit_po.inc +++ b/web/lang/it/pkgedit_po.inc @@ -9,7 +9,7 @@ $_t["it"]["Missing package ID."] = "Manca l'ID del pacchetto."; $_t["it"]["Invalid category ID."] = "ID della categoria non valido."; -$_t["it"]["Enter your comment below."] = "Inserire un commento qui sotto."; +$_t["it"]["Enter your comment below."] = "Inserisci un commento qui sotto."; $_t["it"]["You are not allowed to delete this comment."] = "Non è possibile cancellare questo commento."; @@ -23,8 +23,8 @@ $_t["it"]["Comment has been deleted."] = "Il commento è stato cancellato."; $_t["it"]["You've found a bug if you see this...."] = "Se vedi questo, hai appena trovato un bug...."; -$_t["it"]["Comment has been added."] = "Il commento è stato aggiunto."; +$_t["it"]["Comment has been added."] = "Il commento è stato inserito."; -$_t["it"]["Select new category"] = "Selezionare una nuova categoria"; +$_t["it"]["Select new category"] = "Seleziona una nuova categoria"; ?>
\ No newline at end of file diff --git a/web/lang/it/pkgfuncs_po.inc b/web/lang/it/pkgfuncs_po.inc index b674687..b13aabc 100644 --- a/web/lang/it/pkgfuncs_po.inc +++ b/web/lang/it/pkgfuncs_po.inc @@ -13,15 +13,15 @@ $_t["it"]["Comment by: %h%s%h on %h%s%h"] = "Commento lasciato da: %h%s%h il %h% $_t["it"]["Location"] = "Posizione"; -$_t["it"]["Delete comment"] = "Eliminare il commento"; +$_t["it"]["Delete comment"] = "Elimina il commento"; $_t["it"]["Go"] = "Cerca"; -$_t["it"]["Unflag Out-of-date"] = "Segnare come aggiornato"; +$_t["it"]["Unflag Out-of-date"] = "Pacchetto aggiornato"; -$_t["it"]["Go back to %hpackage details view%h."] = "Ritornare alla %hvista dettagli del pacchetto%h."; +$_t["it"]["Go back to %hpackage details view%h."] = "Ritorna alla %hvista dettagli del pacchetto%h."; -$_t["it"]["Error retrieving package details."] = "Errore nel recupero dei dettagli del pacchetto."; +$_t["it"]["Error retrieving package details."] = "Si è verificato un errore durante il recupero dei dettagli del pacchetto."; $_t["it"]["Description"] = "Descrizione"; @@ -31,13 +31,13 @@ $_t["it"]["Keywords"] = "Parola chiave"; $_t["it"]["Dependencies"] = "Dipendenze"; -$_t["it"]["Disown Packages"] = "Abbandonare i pacchetti"; +$_t["it"]["Disown Packages"] = "Abbandona i pacchetti"; $_t["it"]["Package details could not be found."] = "Impossibile trovare i dettagli del pacchetto."; $_t["it"]["Package Details"] = "Dettagli del pacchetto"; -$_t["it"]["Error retrieving package list."] = "Errore nel recupero della lista dei pacchetti."; +$_t["it"]["Error retrieving package list."] = "Si è verificato un errore durante il recupero della lista dei pacchetti."; $_t["it"]["Files"] = "File"; @@ -47,7 +47,7 @@ $_t["it"]["Name"] = "Nome"; $_t["it"]["Per page"] = "Per pagina"; -$_t["it"]["Go back to %hsearch results%h."] = "Ritornare ai %hrisultati della ricerca%h."; +$_t["it"]["Go back to %hsearch results%h."] = "Ritorna ai %hrisultati della ricerca%h."; $_t["it"]["No packages matched your search criteria."] = "Nessun pacchetto corrisponde ai criteri della ricerca."; @@ -55,21 +55,21 @@ $_t["it"]["O%hrphan"] = "O%hrfano"; $_t["it"]["orphan"] = "orfano"; -$_t["it"]["Un-Vote"] = "Rimuovere il voto"; +$_t["it"]["Un-Vote"] = "Rimuovi il voto"; -$_t["it"]["change category"] = "Cambiare categoria"; +$_t["it"]["change category"] = "Cambia categoria"; -$_t["it"]["UnNotify"] = "Togliere la notifica"; +$_t["it"]["UnNotify"] = "Togli la notifica"; -$_t["it"]["Delete Packages"] = "Eliminare i pacchetti"; +$_t["it"]["Delete Packages"] = "Elimina i pacchetti"; $_t["it"]["Maintainer"] = "Responsabile"; -$_t["it"]["Add Comment"] = "Aggiungere un commento"; +$_t["it"]["Add Comment"] = "Aggiungi un commento"; $_t["it"]["Tarball"] = "Archivio"; -$_t["it"]["Flag Out-of-date"] = "Segnare come non aggiornato"; +$_t["it"]["Flag Out-of-date"] = "Pacchetto non aggiornato"; $_t["it"]["Manage"] = "Organizza"; @@ -87,7 +87,7 @@ $_t["it"]["O%hut-of-Date"] = "N%hon aggiornato"; $_t["it"]["Vote"] = "Vota"; -$_t["it"]["Adopt Packages"] = "Adottare i pacchetti"; +$_t["it"]["Adopt Packages"] = "Adotta i pacchetti"; $_t["it"]["Yes"] = "Si"; @@ -101,7 +101,7 @@ $_t["it"]["Voted"] = "Votato"; $_t["it"]["No New Comment Notification"] = "Nessuna notifica di nuovo commento"; -$_t["it"]["New Comment Notification"] = "Notifica di nuovo commento"; +$_t["it"]["New Comment Notification"] = "Notifica di un nuovo commento"; $_t["it"]["Comments"] = "Commenti"; @@ -109,13 +109,13 @@ $_t["it"]["The above files have been verified (by %s) and are safe to use."] = " $_t["it"]["Be careful! The above files may contain malicious code that can damage your system."] = "Attenzione! I file potrebbero contenere codice pericoloso in grado di danneggiare il vostro sistema."; -$_t["it"]["Flag Safe"] = "Segnare come sicuro"; +$_t["it"]["Flag Safe"] = "Pacchetto sicuro"; -$_t["it"]["Flag Package Safe To Use"] = "Segnare il pacchetto come sicuro da utilizzare"; +$_t["it"]["Flag Package Safe To Use"] = "Pacchetto sicuro"; -$_t["it"]["Unflag Safe"] = "Segnare come non sicuro"; +$_t["it"]["Unflag Safe"] = "Pacchetto non sicuro"; -$_t["it"]["Unflag Package Safe To Use"] = "Segnare il pacchetto come non sicuro da utilizzare"; +$_t["it"]["Unflag Package Safe To Use"] = "Pacchetto non sicuro"; $_t["it"]["Safe"] = "Sicuri"; @@ -135,23 +135,23 @@ $_t["it"]["Search by"] = "Cerca per"; $_t["it"]["Submitter"] = "Contributore"; -$_t["it"]["Leave the password fields blank to keep your same password."] = "Lasciare vuoti i campi relativi alla password per mantenerla invariata."; +$_t["it"]["Leave the password fields blank to keep your same password."] = "Lascia vuoti i campi relativi alla password per mantenerla invariata."; $_t["it"]["You have been successfully logged out."] = "Disconnesso."; -$_t["it"]["You must log in to view user information."] = "Bisogna autenticarsi per visualizzare queste informazioni."; +$_t["it"]["You must log in to view user information."] = "Devi autenticarti per visualizzare queste informazioni."; $_t["it"]["Could not retrieve information for the specified user."] = "Non è stato possibile trovare le informazioni sull'utente specificato."; -$_t["it"]["You do not have permission to edit this account."] = "Non si dispone dei permessi necessari per modificare questo account."; +$_t["it"]["You do not have permission to edit this account."] = "Non disponi dei permessi necessari per modificare questo account."; -$_t["it"]["Use this form to search existing accounts."] = "Utilizzare questo modulo per cercare account esistenti."; +$_t["it"]["Use this form to search existing accounts."] = "Utilizza questo modulo per cercare account esistenti."; -$_t["it"]["Use this form to create an account."] = "Utilizzare questo modulo per creare un account."; +$_t["it"]["Use this form to create an account."] = "Utilizza questo modulo per creare un account."; -$_t["it"]["Use this form to update your account."] = "Utilizzare questo modulo per aggiornare il vostro account."; +$_t["it"]["Use this form to update your account."] = "Utilizza questo modulo per aggiornare il vostro account."; -$_t["it"]["You are not allowed to access this area."] = "Non si dispone dei permessi necessari per accedere."; +$_t["it"]["You are not allowed to access this area."] = "Non disponi dei permessi necessari per accedere."; $_t["it"]["Status"] = "Stato"; @@ -163,4 +163,12 @@ $_t["it"]["All"] = "Tutti"; $_t["it"]["Unsafe"] = "Non sicuri"; +$_t["it"]["Accounts"] = "Account"; + +$_t["it"]["This package has been flagged out of date."] = "Questo pacchetto è stato segnato come non aggiornato."; + +$_t["it"]["The above files have been verified (by %h%s%h) and are safe to use."] = "I file sono stati verificati (da %h%s%h) ed il loro utilizzo è da considerarsi sicuro."; + +$_t["it"]["Required by"] = "Richiesto da"; + ?>
\ No newline at end of file diff --git a/web/lang/it/submit_po.inc b/web/lang/it/submit_po.inc index f2dc8e5..372c60d 100644 --- a/web/lang/it/submit_po.inc +++ b/web/lang/it/submit_po.inc @@ -21,7 +21,7 @@ $_t["it"]["You must create an account before you can upload packages."] = "Bisog $_t["it"]["Package upload successful."] = "Invio completato con successo."; -$_t["it"]["Overwrite existing package?"] = "Sovrascrivere il pacchetto esistente?"; +$_t["it"]["Overwrite existing package?"] = "Sovrascrivi il pacchetto esistente?"; $_t["it"]["You did not specify a package name."] = "Non è stato specificato un nome per il pacchetto."; @@ -61,9 +61,9 @@ $_t["it"]["Error - No file uploaded"] = "Errore, nessun file inviato."; $_t["it"]["You are not allowed to overwrite the %h%s%h package."] = "Non si dispone dei permessi per poter sovrascrivere il pacchetto %h%s%h."; -$_t["it"]["Select Location"] = "Selezionare la posizione"; +$_t["it"]["Select Location"] = "Seleziona la posizione"; -$_t["it"]["Select Category"] = "Selezionare la categoria"; +$_t["it"]["Select Category"] = "Seleziona la categoria"; $_t["it"]["Comment"] = "Commento"; diff --git a/web/lang/it/timeout_po.inc b/web/lang/it/timeout_po.inc index 2d52bc8..7b25780 100644 --- a/web/lang/it/timeout_po.inc +++ b/web/lang/it/timeout_po.inc @@ -5,8 +5,8 @@ include_once("translator.inc"); global $_t; -$_t["it"]["Click on the Home link above to log in."] = "Fare clic su Inizio per autenticarsi."; +$_t["it"]["Click on the Home link above to log in."] = "Clicca su Inizio per autenticarti."; -$_t["it"]["Your session has timed out. You must log in again."] = "La sessione è scaduta. Autenticarsi di nuovo."; +$_t["it"]["Your session has timed out. You must log in again."] = "La sessione è scaduta, autenticati di nuovo."; ?>
\ No newline at end of file diff --git a/web/lib/aur.inc b/web/lib/aur.inc index 5b43baf..380e2b6 100644 --- a/web/lib/aur.inc +++ b/web/lib/aur.inc @@ -335,100 +335,77 @@ function html_header() { global $_SERVER; global $_COOKIE; global $LANG; - print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""; - print " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; - print "<html xmlns=\"http://www.w3.org/1999/xhtml\""; - print " xml:lang=\"".$LANG."\" lang=\"".$LANG."\">\n"; - print "<head>\n"; - print "<title>AUR (".$LANG.")</title>\n"; - print "<link rel='stylesheet' type='text/css' href='/css/fonts.css'/>\n"; - print "<link rel='stylesheet' type='text/css' href='/css/containers.css'/>\n"; - print "<link rel='shortcut icon' href='/images/favicon.ico'/>\n"; - print "<link rel='alternate' type='application/rss+xml' title='Newest Packages RSS' href='/rss2.php' />\n"; - print "<meta http-equiv=\"Content-Type\""; - print " content=\"text/html; charset=UTF-8\" />\n"; - print "</head>\n"; - print "<body bgcolor='white'>\n"; - print "<table cellspacing='0' "; - print "style='background-color: #000; width: 100%;'>\n"; - print " <tr>\n"; - print " <td class='preHeader'><span class='preHeader'>"; - print __("%s: %sAn ArchLinux project%s", array("AUR", "<a href=\"http://www.archlinux.org\">", "</a>")); - print "</span></td>\n"; - print " </tr>\n"; - print " <tr>\n"; - print " <td class='headerFill'>\n"; - print " <table width='100%'>\n"; - print " <tr>\n"; - print " <td class='headerDisplay'><a href='/index.php'>"; - - # XXX Can I scale a PNG like this? - # - print "<img src='/images/AUR-logo-80.png' width='85' height='45' "; - print "alt='AUR' border='0' /></a></td>\n"; - print " <td class='headerDisplay' valign='top' align='right'>"; - print "<span class='preHeader'>ArchLinux User-community Repository</span><br />"; - - # XXX CSS help - a:link, a:visited, etc are defined, but I don't want to - # use the defaults. Is this the way to override them? - # - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=en'><span class='sideBarSmallHeader'>English</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=pl'><span class='sideBarSmallHeader'>Polski</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=it'><span class='sideBarSmallHeader'>Italiano</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=ca'><span class='sideBarSmallHeader'>Català</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=pt'><span class='sideBarSmallHeader'>Português</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=es'><span class='sideBarSmallHeader'>Español</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=de'><span class='sideBarSmallHeader'>Deutsch</span></a> "; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=fr'><span class='sideBarSmallHeader'>Français</span></a>"; - print "<a href='".$_SERVER["PHP_SELF"]."?setlang=ru'><span class='sideBarSmallHeader'>Русский</span></a>"; - print " </td>\n"; - print " </tr>\n"; - print " </table>\n"; - print " </td>\n"; - print " </tr>\n"; - - # Menu items - # - print " <tr>\n"; - print " <td class='mainLinks' align='center'>"; - print " <span class='f2'><span class='black'>.:</span>"; - print " <a href='/index.php'>".__("Home")."</a> "; - print " <span class='black'> - </span> "; - print " <a href='/account.php'>".__("Accounts")."</a> "; - print " <span class='black'> - </span> "; - print " <a href='/packages.php'>".__("Packages")."</a> "; + echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; + echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""; + echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; + echo "<html xmlns=\"http://www.w3.org/1999/xhtml\""; + echo " xml:lang=\"".$LANG."\" lang=\"".$LANG."\">\n"; + echo "<head>\n"; + echo "<title>AUR (".$LANG.")</title>\n"; + echo "<link rel='stylesheet' type='text/css' href='/css/fonts.css'/>\n"; + echo "<link rel='stylesheet' type='text/css' href='/css/containers.css'/>\n"; + echo "<link rel='stylesheet' type='text/css' href='/css/arch.css'/>\n"; + echo "<link rel='shortcut icon' href='/images/favicon.ico'/>\n"; + echo "<link rel='alternate' type='application/rss+xml' title='Newest Packages RSS' href='/rss2.php' />\n"; + echo "<meta http-equiv=\"Content-Type\""; + echo " content=\"text/html; charset=UTF-8\" />\n"; + echo "</head>\n"; + echo "<body bgcolor='white'>\n"; + echo <<<END1 +<div id="head_container"> + <div id="title"> + <div id="logo"><a href="/"><img src="/images/logo.png" alt="Arch Logo" /></a></div> + <div id="titleimg"><a href="/"><img src="/images/title.png" alt="Arch Linux" /></a></div> + </div> + <div style="float: right; color: #eeeeee; font-size: small"> + </div> + <div id="main_nav"> + <ul> + <li><a href="http://www.archlinux.org/download/">Get Arch</a></li> + <li class="selected"><a href="http://aur.archlinux.org">AUR</a></li> + <li><a href="http://bugs.archlinux.org">Bugs</a></li> + <li><a href="http://wiki.archlinux.org">Wiki</a></li> + <li><a href="http://bbs.archlinux.org">Forums</a></li> + <li><a href="http://www.archlinux.org">Home</a></li> + </ul> + </div> + <div id="sub_nav"> + <ul> + +END1; if ($_COOKIE["AURSID"]) { - # Only display these items if the visitor is logged in. This should - # be a safe check because check_sid() has been called prior to - # html_header(). - # - print " <span class='black'> - </span> "; - print " <a href='/pkgsubmit.php'>".__("Submit")."</a> "; + # This is a usability change, so we can go to My Packages page + # with just one click + # Added by: dsa <dsandrade@gmail.com> + echo ' <li><a href="/logout.php">'.__("Logout")."</a></li>\n"; + echo ' <li><a href="/pkgsubmit.php">'.__("Submit")."</a></li>\n"; + echo ' <li><a href="/packages.php?do_MyPackages=1">'.__("My Packages")."</a></li>\n"; } - print " <span class='black'> - </span> "; - print " <a href='http://bugs.archlinux.org/index.php?tasks=all&project=2'>".__("Bugs")."</a> "; - print " <span class='black'> - </span> "; - print " <a href='http://www.archlinux.org/mailman/listinfo/tur-users'>".__("Discussion")."</a> "; - if ($_COOKIE["AURSID"]) { - # This is a usability change, so we can go to My Packages page - # with just one click - # Added by: dsa <dsandrade@gmail.com> - print " <span class='black'> - </span> "; - print " <a href='/packages.php?do_MyPackages=1'>".__("My Packages")."</a> "; - - print " <span class='black'> - </span> "; - print " <a href='/logout.php'>".__("Logout")."</a> "; - } - print " <span class='black'>:.</span></span>"; - print " </td>"; - print " </tr>"; - print " <tr>\n"; - print " <td class='contentDisplay'>\n"; - print " <br />\n"; - print "<!-- Start of main content -->\n\n"; - - return; + echo ' <li><a href="http://www.archlinux.org/mailman/listinfo/tur-users/">'.__("Discussion")."</a></li>\n"; + echo ' <li><a href="http://bugs.archlinux.org/index.php?tasks=all&project=2">'.__("Bugs")."</a></li>\n"; + echo ' <li><a href="/packages.php">'.__("Packages")."</a></li>\n"; + echo ' <li><a href="/account.php">'.__("Accounts")."</a></li>\n"; + echo ' <li><a href="/index.php">AUR-'.__("Home")."</a></li>\n"; + echo " </ul>\n"; + echo " </div>\n"; + echo ' <div id="lang_sub">'."\n"; + echo " <ul>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=ru' title='Русский'>RU</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=fr' title='Français'>FR</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=de' title='Deutsch'>DE</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=es' title='Español'>ES</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=pt' title='Português'>PT</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=ca' title='Català'>CA</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=it' title='Italiano'>IT</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=pl' title='Polski'>PL</a></li>\n"; + echo " <li><a href='".$_SERVER["PHP_SELF"]."?setlang=en' title='English'>EN</a></li>\n"; + echo " <li>Lang: </li>\n"; + echo " </ul>\n"; + echo " </div>\n"; + echo "</div>\n"; + echo "<div id=\"maincontent\">\n"; + echo "<!-- Start of main content -->\n\n"; + return; } @@ -437,9 +414,6 @@ function html_header() { function html_footer($ver="") { print "\n\n<!-- End of main content -->\n"; print " <br />\n"; - print " </td>\n"; - print " </tr>\n"; - print "</table>\n"; if ($ver) { print "<p>\n"; print "<table border='0' cellpadding='0' cellspacing='0' width='97%'>\n"; @@ -447,7 +421,7 @@ function html_footer($ver="") { print "</table>\n"; print "</p>\n"; } - print "<br />\n"; + print "</div>\n"; print "</body>\n</html>"; return; } diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index d6213d8..cf87268 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -152,6 +152,25 @@ function package_dependencies($pkgid=0) { return $deps; } +# reverse deps by tardo +# +function package_required($pkgid=0) { + $deps = array(); + if ($pkgid) { + $dbh = db_connect(); + $q = "SELECT PackageID, Name, DummyPkg from PackageDepends, Packages "; + $q.= "WHERE PackageDepends.PackageID = Packages.ID "; + $q.= "AND PackageDepends.DepPkgID = "; + $q.= mysql_real_escape_string($pkgid); + $result = db_query($q, $dbh); + if (!$result) {return array();} + while ($row = mysql_fetch_row($result)) { + $deps[] = $row; + } + } + return $deps; +} + # create a dummy package and return it's Packages.ID if it already exists, # return the existing ID # @@ -268,36 +287,19 @@ function package_details($id=0, $SID="") { } else { # print out package details - # - print "<br />\n"; - print "<center>\n"; - print "<table cellspacing='3' class='boxSoft'>\n"; - print "<tr>\n"; - print " <td class='boxSoftTitle' align='right'>"; - print "<span class='f3'>".__("Package Details")."</span></td>\n"; - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft'>\n"; - print "<center>\n"; - print "<table>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f2'>"; - print $row["Name"] . " " . $row["Version"]."</span></td>\n"; - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>"; - print "<a href='".$row["URL"]."'>".$row["URL"]."</a></span></td>\n"; - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>".$row["Description"]; - print "</a></span></td>\n"; - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='30'></td>"; - print "</tr>\n"; - - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>"; + # + echo "<div class=\"pgbox\">\n"; + echo " <div class=\"pgboxtitle\"><span class=\"f3\">".__("Package Details")."</span></div>\n"; + echo " <div class=\"pgboxbody\">\n"; + echo " <table>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f2'>"; + echo $row["Name"] . " " . $row["Version"]."</span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>"; + echo "<a href='".$row["URL"]."'>".$row["URL"]."</a></span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>".$row["Description"]; + echo "</a></span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='30'></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>"; if ($row["Location"] == "unsupported" and ( uid_from_sid($SID) == $row["MaintainerUID"] or (account_from_sid($SID) == "Developer" or @@ -309,86 +311,68 @@ function package_details($id=0, $SID="") { } else { $edit_cat = $row["Category"]; } - print $row["Location"]." :: ".$edit_cat."</span></td>"; - - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>".__("Maintainer").": "; + echo $row["Location"]." :: ".$edit_cat."</span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>".__("Maintainer").": "; if ($row["MaintainerUID"]) { $maintainer = username_from_id($row["MaintainerUID"]); if ($SID) { - print "<a href='/account.php?Action=AccountInfo&ID="; - print $row["MaintainerUID"] . "'>"; - print $maintainer . "</a></span></td>"; + echo "<a href='/account.php?Action=AccountInfo&ID="; + echo $row["MaintainerUID"] . "'>"; + echo $maintainer . "</a></span></td>"; } else { - print $maintainer . "</span></td>"; + echo $maintainer . "</span></td>"; } } else { $maintainer = "None"; - print $maintainer . "</span></td>"; + echo $maintainer . "</span></td>"; } - print "</tr>\n"; - - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>".__("Votes").": "; - print $row["NumVotes"] . "</span></td>"; - print "</tr>\n"; + echo " </tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>".__("Votes").": "; + echo $row["NumVotes"] . "</span></td></tr>\n"; # In case of wanting to put a custom message $msg = __("unknown"); $license = $row["License"] == "" ? $msg : $row["License"]; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><br><span class='f3'>".__("License").": ".$license; - print "</a></span></td>\n"; - print "</tr>\n"; - - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='15'></td>"; - print "</tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><br><span class='f3'>".__("License").": ".$license; + echo "</a></span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='15'></td></tr>\n"; # Print the timestamps for last updates $updated_time = ($row["ModifiedTS"] == 0) ? "(unknown)" : gmdate("r", intval($row["ModifiedTS"])); $submitted_time = ($row["SubmittedTS"] == 0) ? "(unknown)" : gmdate("r", intval($row["SubmittedTS"])); - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'>"; - print "<span class='f3'>"; - print __("Last Updated").": ".$updated_time."<br>"; - print __("First Submitted").": ".$submitted_time; - print "</span>"; - print "</td>\n"; - print "</tr>\n"; - - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='15'></td>"; - print "</tr>\n"; - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><span class='f3'>"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>"; + echo __("Last Updated").": ".$updated_time."<br>"; + echo __("First Submitted").": ".$submitted_time."</span></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='15'></td></tr>\n"; + echo " <tr><td class='boxSoft' colspan='2'><span class='f3'>"; if ($row["LocationID"] == 2) { $urlpath = URL_DIR.$row["Name"]."/".$row["Name"]; print "<a href='$urlpath.tar.gz'>".__("Tarball")."</a> :: <a href='$urlpath'>".__("Files")."</a> :: <a href='$urlpath/PKGBUILD'>PKGBUILD</a></span></td>"; } elseif ($row["LocationID"] == 3) { - print "<a href='http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/" . $row["Category"] . "/" . $row["Name"] . "/?cvsroot=AUR&only_with_tag=CURRENT'>CVS</td>"; + echo "<a href='http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/" . $row["Category"] . "/" . $row["Name"] . "/?cvsroot=AUR&only_with_tag=CURRENT'>CVS</td>"; } - print "</tr>\n"; + echo "</tr>\n"; if ($row["LocationID"] == 2) { - print "<tr>\n"; - print " <td colspan='2'>"; + echo " <tr><td colspan='2'>"; if ($row["Safe"]) { - print "<span class='f7'>".__("The above files have been verified (by %s) and are safe to use.", array(username_from_id($row["VerifiedBy"])))."</span></td>"; + echo "<span class='f7'>".__("The above files have been verified (by %h%s%h) and are safe to use.", array("<a href='/account.php?Action=AccountInfo&ID=".$row["VerifiedBy"]."'>", username_from_id($row["VerifiedBy"]), "</a>"))."</span></td>"; } else { - print "<span class='f6'>".__("Be careful! The above files may contain malicious code that can damage your system.")."</span></td>"; - } + echo "<span class='f6'>".__("Be careful! The above files may contain malicious code that can damage your system.")."</span></td>"; + } + echo " </tr>\n"; } - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='30'></td>"; - print "</tr>\n"; - print "<tr>\n"; - print " <td valign='top' style='padding-right: 10'>"; - print "<table class='boxSoft' style='width: 200px'>"; - print "<tr><td class='boxSoftTitle'><span class='f3'>"; - print __("Dependencies")."</span></td></tr>\n"; - print "<tr><td class='boxSoft'>"; + if ($row["OutOfDate"] == 1) { + echo "\n<tr><td colspan='2'>"; + echo "<span class='f6'>".__("This package has been flagged out of date.")."</span></td></tr>"; + } + echo " <tr><td class='boxSoft' colspan='2'><img src='/images/pad.gif' height='30'></td></tr>\n"; + echo " <tr>\n"; + echo " <td valign='top' style='padding-right: 10'>\n"; + echo " <table class='boxSoft' style='width: 200px'>\n"; + echo " <tr><td class='boxSoftTitle'><span class='f3'>"; + echo __("Dependencies")."</span></td></tr>\n"; + echo " <tr><td class='boxSoft'>"; $deps = package_dependencies($row["ID"]); # $deps[0] = array('id','name', 'dummy'); while (list($k, $darr) = each($deps)) { $url = "<a href='/packages.php?do_Details=1&ID=".$darr[0]; @@ -403,196 +387,205 @@ function package_details($id=0, $SID="") { // $darr[3] is the DepCondition + if ($darr[2] == 0) echo $url."'>".$darr[1].$darr[3]."</a><br />\n"; + else echo "<a href='#'>".$darr[1].$darr[3]."</a><br />\n"; + } + echo "</td></tr>\n"; + echo "</table></td>"; + + # reverse-deps by tardo - could use some beautification + echo " <td valign='top'>"; + echo "<table class='boxSoft' style='width: 200px'>"; + echo "<tr><td class='boxSoftTitle'><span class='f3'>"; + echo __("Required by")."</span></td></tr>\n"; + echo "<tr><td class='boxSoft'>"; + $deps = package_required($row["ID"]); + while (list($k, $darr) = each($deps)) { + $url = "<a href='/packages.php?do_Details=1&ID=".$darr[0]; + while(list($k, $var) = each($pkgsearch_vars)) { + if (($var == "do_MyPackages" || $var == "do_Orphans") && $_REQUEST[$var]) { + $url .= "&".$var."=1"; + } else { + $url .= "&".$var."=".rawurlencode(stripslashes($_REQUEST[$var])); + } + } + reset($pkgsearch_vars); + + // $darr[3] is the DepCondition + if ($darr[2] == 0) print $url."'>".$darr[1].$darr[3]."</a><br />\n"; else print "<a href='#'>".$darr[1].$darr[3]."</a><br />\n"; } - print "</td></tr>\n"; - print "</table></td>"; - - print " <td valign='top'>"; - print "<table class='boxSoft' style='width: 200px'>"; - print "<tr><td class='boxSoftTitle'><span class='f3'>"; - print __("Sources")."</span></td></tr>\n"; - print "<tr><td class='boxSoft'>"; + echo "</td></tr>\n"; + echo " </table>\n"; + echo " </td>\n"; + echo " <td valign='top'>\n"; + echo " <table class='boxSoft' style='width: 200px'>\n"; + echo " <tr><td class='boxSoftTitle'><span class='f3'>"; + echo __("Sources")."</span></td></tr>\n"; + echo " <tr><td class='boxSoft'>"; $sources = package_sources($row["ID"]); # $sources[0] = 'src'; while (list($k, $src) = each($sources)) { $parsed_url = parse_url($src); if ($parsed_url['scheme']) { //It is an external source - print "<a href='".$src."'>".$src."</a><br />\n"; + echo "<a href='".$src."'>".$src."</a><br />\n"; } else { //It is presumably an internal source if ($row["LocationID"] == 2) { - print "<a href='".dirname($row['URLPath'])."/".$row['Name']; - print "/".$src."'>".$src."</a><br />\n"; + echo "<a href='".dirname($row['URLPath'])."/".$row['Name']; + echo "/".$src."'>".$src."</a><br />\n"; } elseif ($row["LocationID"] == 3) { - print "<a href='http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/".$row["Category"]."/".$row["Name"]."/".$src."/?rev=HEAD&cvsroot=AUR&only_with_tag=CURRENT'>"; - print $src."</a><br />\n"; + echo "<a href='http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/".$row["Category"]."/".$row["Name"]."/".$src."/?rev=HEAD&cvsroot=AUR&only_with_tag=CURRENT'>"; + echo $src."</a><br />\n"; } } } - print "</td></tr>\n"; - print "</table></td>"; - print "</tr>\n"; - print "<tr>\n"; - print " <td colspan='2'><img src='/images/pad.gif' height='2'>"; - print "</td></tr>\n"; - print "</table>\n"; - print "</center>\n"; - print " </td>\n"; - print "</tr>\n"; + echo "</td></tr>\n"; + echo " </table>\n"; + echo " </td>\n"; + echo " </tr>\n"; + echo " </table>\n"; + echo " </div>\n"; + echo "</div>\n\n"; + echo "<br />\n\n"; - print "</table><br />\n"; # Actions Bar # if ($SID) { - print "<table cellspacing='3' class='boxSoft'>\n"; - print "<tr><td class='boxSoftTitle' align='right'><span class='f3'>".__("Actions")."</span></td></tr>\n"; - print "<tr>\n"; - print "<td class='boxSoft'><form action='/packages.php' method='post'>\n"; - print "<input type='hidden' name='IDs[".$row["ID"]."]' value='1'>\n"; - print "<input type='hidden' name='ID' value='".$row["ID"]."'>\n"; + echo "<div class=\"pgbox\">\n"; + echo " <div class=\"pgboxtitle\"><span class=\"f3\">".__("Actions")."</span></div>\n"; + echo " <div class=\"pgboxbody\">\n"; + echo " <form action='/packages.php' method='post'>\n"; + echo " <input type='hidden' name='IDs[".$row["ID"]."]' value='1'>\n"; + echo " <input type='hidden' name='ID' value='".$row["ID"]."'>\n"; # Voting Button # $q = "SELECT * FROM PackageVotes WHERE UsersID = ".uid_from_sid($SID); $q.= " AND PackageID = ".$row["ID"]; if (!mysql_num_rows(db_query($q, $dbh))) { - print "<input type='submit' class='button' name='do_Vote'"; - print " value='".__("Vote")."'>"; + echo " <input type='submit' class='button' name='do_Vote'"; + echo " value='".__("Vote")."'>"; } else { - print "<input type='submit' class='button' name='do_UnVote'"; - print " value='".__("Un-Vote")."'>"; + echo "<input type='submit' class='button' name='do_UnVote'"; + echo " value='".__("Un-Vote")."'>"; } # Comment Nofify Button # $q = "SELECT * FROM CommentNotify WHERE UserID = ".uid_from_sid($SID); $q.= " AND PkgID = ".$row["ID"]; if (!mysql_num_rows(db_query($q, $dbh))) { - print "<input type='submit' class='button' name='do_Notify'"; - print " value='".__("Notify")."' title='".__("New Comment Notification")."'>"; + echo "<input type='submit' class='button' name='do_Notify'"; + echo " value='".__("Notify")."' title='".__("New Comment Notification")."'>"; } else { - print "<input type='submit' class='button' name='do_UnNotify'"; - print " value='".__("UnNotify")."' title='".__("No New Comment Notification")."'>"; + echo "<input type='submit' class='button' name='do_UnNotify'"; + echo " value='".__("UnNotify")."' title='".__("No New Comment Notification")."'>"; } # Flag Safe Button # - if ($row["LocationID"] == 2 && (account_from_sid($SID) == "Trusted User" || account_from_sid($SID) == "Developer")) - { - if ($row["Safe"] == 0) - { - print "<input type='submit' class='button' name='do_FlagSafe'"; - print " value='".__("Flag Safe")."' title='".__("Flag Package Safe To Use")."'>"; - } - else - { - print "<input type='submit' class='button' name='do_UnFlagSafe'"; - print " value='".__("Unflag Safe")."' title='".__("Unflag Package Safe To Use")."'>"; + if ($row["LocationID"] == 2 && (account_from_sid($SID) == "Trusted User" || account_from_sid($SID) == "Developer")) { + if ($row["Safe"] == 0) { + echo "<input type='submit' class='button' name='do_FlagSafe'"; + echo " value='".__("Flag Safe")."' title='".__("Flag Package Safe To Use")."'>"; + } else { + echo "<input type='submit' class='button' name='do_UnFlagSafe'"; + echo " value='".__("Unflag Safe")."' title='".__("Unflag Package Safe To Use")."'>"; } + } + + if ($row["OutOfDate"] == 0) { + echo "<input type='submit' class='button' name='do_Flag'"; + echo " value='".__("Flag Out-of-date")."'>\n"; + } else { + echo "<input type='submit' class='button' name='do_UnFlag'"; + echo " value='".__("Unflag Out-of-date")."'>\n"; } - if ($row["OutOfDate"] == 0) - { - print "<input type='submit' class='button' name='do_Flag'"; - print " value='".__("Flag Out-of-date")."'>\n"; - } - else - { - print "<input type='submit' class='button' name='do_UnFlag'"; - print " value='".__("Unflag Out-of-date")."'>\n"; - } - if ($row["AURMaintainerUID"] == 0 && $row["MaintainerUID"] == 0) - { - print "<input type='submit' class='button' name='do_Adopt'"; - print " value='".__("Adopt Packages")."'>\n"; - } + if ($row["AURMaintainerUID"] == 0 && $row["MaintainerUID"] == 0) { + echo "<input type='submit' class='button' name='do_Adopt'"; + echo " value='".__("Adopt Packages")."'>\n"; + } - if ($row["MaintainerUID"] == uid_from_sid($SID)) - { - print "<input type='submit' class='button' name='do_Disown'"; - print " value='".__("Disown Packages")."'>\n"; - } + if ($row["MaintainerUID"] == uid_from_sid($SID)) { + echo "<input type='submit' class='button' name='do_Disown'"; + echo " value='".__("Disown Packages")."'>\n"; + } - if ($row["MaintainerUID"] == uid_from_sid($SID) || - account_from_sid($SID) == "Trusted User" || - account_from_sid($SID) == "Developer") - { - print "<input type='submit' class='button' name='do_Delete'"; - print " value='".__("Delete Packages")."'>\n"; - } + if ($row["MaintainerUID"] == uid_from_sid($SID) || + account_from_sid($SID) == "Trusted User" || + account_from_sid($SID) == "Developer") { + echo "<input type='submit' class='button' name='do_Delete'"; + echo " value='".__("Delete Packages")."'>\n"; + } - print "</form></td></tr>\n"; - print "</table><br />\n"; + echo " </form>\n"; + echo " </div>\n"; + echo "</div>\n"; + echo "\n<br />\n\n"; } # Comments # - print "<table cellspacing='3' class='boxSoft'>\n"; - print "<tr><td class='boxSoftTitle' align='right'><span class='f3'>".__("Comments")."</span></td></tr>\n"; - print "<tr>\n"; - print "<td class='boxSoft'>"; - - print "<table width='100%'>\n"; + echo "<div class=\"pgbox\">\n"; + echo " <div class=\"pgboxtitle\"><span class=\"f3\">".__("Comments")."</span></div>\n"; + echo " <div class=\"pgboxbody-comment\">\n"; + echo " <table width='100%'>\n"; $comments = package_comments($row["ID"]); if (!empty($comments)) { while (list($indx, $carr) = each($comments)) { - print "<tr>\n"; - print " <td class='boxSoft' colspan='2'>"; - print "<img src='/images/pad.gif' height='2'></td></tr>\n"; - - print "<tr>\n"; - print " <td valign='top' style='padding-right: 10' colspan='2'>"; - print "<table class='boxSoft' width='100%'>"; - print "<tr><td class='boxSoftTitle'><span class='f3'>"; + + echo " <tr>\n"; + echo " <td valign='top' style='padding-right: 10' colspan='2'>\n"; + echo " <table class='boxSoft' width='100%'>\n"; + echo " <tr>\n"; + echo " <td class='boxSoftTitle'><span class='f3'>"; if (canDeleteComment($carr["ID"], account_from_sid($SID), $SID)) { $durl = "<a href='/pkgedit.php?del_Comment=1"; $durl.= "&comment_id=".$carr["ID"]."&ID=".$row["ID"]; $durl.= "'><img src='/images/x.png' border='0'"; $durl.= " alt=\"".__("Delete comment")."\"></a>"; - print $durl . " "; + echo $durl . " "; } if ($SID) { - print __("Comment by: %h%s%h on %h%s%h", + echo __("Comment by: %h%s%h on %h%s%h", array("<a href='/account.php?Action=AccountInfo&ID=".$carr["UsersID"]."'><b>",$carr["UserName"],"</b></a>", "<i>",gmdate("Ymd [H:i:s]",$carr["CommentTS"]),"</i>")); } else { - print __("Comment by: %h%s%h on %h%s%h", + echo __("Comment by: %h%s%h on %h%s%h", array("<b>",$carr["UserName"],"</b>", "<i>",gmdate("Ymd [H:i:s]",$carr["CommentTS"]),"</i>")); } - print "</span>"; - print "<tr><td class='boxSoft'>"; - print "<code>\n"; - print str_replace("\n", "<br>", str_replace('"',""", htmlspecialchars(strip_tags(stripslashes($carr["Comments"]))))); - print "</code>\n"; - print "</td></tr>\n"; - print "</table>\n"; - print " </td>\n"; - print "</tr>\n"; + echo "</span></td>\n"; + echo " </tr>\n"; + echo " <tr>\n"; + echo " <td class='boxSoft'>"; + echo "<code>\n"; + echo nl2br(htmlspecialchars($carr["Comments"])); + echo "</code></td>\n"; + echo " </tr>\n"; + echo " </table>\n"; + echo " </td>\n"; + echo " </tr>\n"; } } - print "<tr>\n"; - print " <td colspan='2'><img src='/images/pad.gif' height='2'>"; - print "</td></tr>\n"; - print "<tr>\n"; - print " <td colspan='2'>"; - print "<form action='/pkgedit.php' method='post'>\n"; - print "<input type='hidden' name='ID' value='".$row["ID"]."'>\n"; - print "<input type='submit' class='button' name='add_Comment' value=\""; - print __("Add Comment")."\">"; - print "</form>\n"; - print " </td>"; - print "</tr>\n"; - - print "</table>\n"; - - - print "</td></tr></table>\n"; + echo " <tr>\n"; + echo " <td colspan='2'>\n"; + echo " <form action='/pkgedit.php' method='post'>\n"; + echo " <input type='hidden' name='ID' value='".$row["ID"]."'>\n"; + echo " <input type='submit' class='button' name='add_Comment' value=\""; + echo __("Add Comment")."\">\n"; + echo " </form>\n"; + echo " </td>\n"; + echo " </tr>\n"; + echo " </table>\n"; + echo " </div>\n"; + echo "</div>\n"; } } |