From ac8291a5dcbfe9edf53d627be1139fe52708d4ce Mon Sep 17 00:00:00 2001 From: eliott Date: Sat, 22 Sep 2007 12:09:00 -0700 Subject: [PATCH] Changes to bring the main arch site theme to the aur. --- .gitignore | 3 + web/html/css/arch.css | 449 +++++++++++++++++++++++++++++++++ web/html/images/logo.png | Bin 0 -> 15730 bytes web/html/images/tab.png | Bin 0 -> 107 bytes web/html/images/title.png | Bin 0 -> 6465 bytes web/html/images/title_back.png | Bin 0 -> 168 bytes web/lang/en/pkgfuncs_po.inc | 4 +- web/lib/aur.inc | 164 +++++------- web/lib/pkgfuncs.inc | 358 +++++++++++--------------- 9 files changed, 674 insertions(+), 304 deletions(-) create mode 100644 .gitignore create mode 100644 web/html/css/arch.css create mode 100644 web/html/images/logo.png create mode 100644 web/html/images/tab.png create mode 100644 web/html/images/title.png create mode 100644 web/html/images/title_back.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9e572cee --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.swp +web/lib/config.inc + diff --git a/web/html/css/arch.css b/web/html/css/arch.css new file mode 100644 index 00000000..7d8f41f3 --- /dev/null +++ b/web/html/css/arch.css @@ -0,0 +1,449 @@ +* { 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%; +} +.pkgbox { + 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; +} +.pkgboxtitle { + 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; +} +.pkgboxbody, .pkgboxbody-comment { + padding: 10px; +} +.pkgboxbody input { + margin-right: 10px; +} + +.pkgboxbody-comment > table { + border-collapse: separate; + border-spacing: 0 15px; +} + diff --git a/web/html/images/logo.png b/web/html/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b6d863403fecd0fc6459f43bdefefaf1933b4b GIT binary patch literal 15730 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 literal 0 HcmV?d00001 diff --git a/web/html/images/tab.png b/web/html/images/tab.png new file mode 100644 index 0000000000000000000000000000000000000000..56d2e6172a1876ffc6d7ef7bdf0d0ba6615e4807 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!3HG#Z-iO_Db50q$YKTtZeb8+WSBKa0w^f! z>Eal|aXtCRzo&2Om#vTAZ)9Lw|8Y{|%WrS3c^KLpc-VEyw#@@7WbkzLb6Mw<&;$U# C@f`2~ literal 0 HcmV?d00001 diff --git a/web/html/images/title.png b/web/html/images/title.png new file mode 100644 index 0000000000000000000000000000000000000000..e16971a17379bf87d2365465a66cb3463ff82b39 GIT binary patch literal 6465 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 literal 0 HcmV?d00001 diff --git a/web/html/images/title_back.png b/web/html/images/title_back.png new file mode 100644 index 0000000000000000000000000000000000000000..95c98d7a253572a13eaa47415f8de2594864339a GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^j6m$h!2~3mv@$^woCO|{#S9GG!XV7ZFl&wkP%z5V z#W6(Ua&F&2-Ub66X65(#8#!ki2$kDNc?tfRWAS{)w!a>kQxaS`grc<@A6nNg{+Hb$ zW#ZuFE_d#)ws8EN7Z20>m(7y?8&kFR|NNNKb8N%E7d}<5e*V2T=JW02js6_pp8{=R N@O1TaS?83{1OR_#Ij{f# literal 0 HcmV?d00001 diff --git a/web/lang/en/pkgfuncs_po.inc b/web/lang/en/pkgfuncs_po.inc index 220cdb37..dcd46f4f 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,4 @@ $_t["en"]["License"] = "License"; $_t["en"]["unknown"] = "unknown"; -?> \ No newline at end of file +?> diff --git a/web/lib/aur.inc b/web/lib/aur.inc index cce53848..ce662f7b 100644 --- a/web/lib/aur.inc +++ b/web/lib/aur.inc @@ -359,100 +359,77 @@ function html_header() { global $_SERVER; global $_COOKIE; global $LANG; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "AUR (".$LANG.")\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print " \n"; - print " \n"; - print " \n"; - print " \n"; - print " \n"; - print " \n"; - - # Menu items - # - print " \n"; - print " "; - print " "; - print " \n"; - print " \n"; - print " \n"; - print "
"; - print __("%s: %sAn ArchLinux project%s", array("AUR", "", "")); - print "
\n"; - print " \n"; - print " \n"; - print " \n"; - print " \n"; - print " \n"; - print "
"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "AUR (".$LANG.")\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo << +
+ +
Arch Linux
+
+
+
+ +
"; - print "ArchLinux User-community Repository
"; - - # 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 "English "; - print "Polski "; - print "Italiano "; - print "Català "; - print "Português "; - print "Español "; - print "Deutsch "; - print "Français"; - print "Русский"; - print "
\n"; - print "
\n"; - print "  
\n"; - print "\n\n"; - - return; + echo '
  • '.__("Discussion")."
  • \n"; + echo '
  • '.__("Bugs")."
  • \n"; + echo '
  • '.__("Packages")."
  • \n"; + echo '
  • '.__("Accounts")."
  • \n"; + echo '
  • AUR-'.__("Home")."
  • \n"; + echo " \n"; + echo " \n"; + echo '
    '."\n"; + echo "
      \n"; + echo "
    • RU
    • \n"; + echo "
    • FR
    • \n"; + echo "
    • DE
    • \n"; + echo "
    • ES
    • \n"; + echo "
    • PT
    • \n"; + echo "
    • CA
    • \n"; + echo "
    • IT
    • \n"; + echo "
    • PL
    • \n"; + echo "
    • EN
    • \n"; + echo "
    • Lang:
    • \n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n\n"; + return; } @@ -461,9 +438,6 @@ function html_header() { function html_footer($ver="") { print "\n\n\n"; print "
    \n"; - print "
    \n"; if ($ver) { print "

    \n"; print "\n"; @@ -471,7 +445,7 @@ function html_footer($ver="") { print "
    \n"; print "

    \n"; } - print "
    \n"; + print "\n"; print "\n"; return; } diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index b9ad0d4a..de1dc5fa 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -268,36 +268,19 @@ function package_details($id=0, $SID="") { } else { # print out package details - # - print "
    \n"; - print "
    \n"; - print "\n"; - print "\n"; - print " \n"; - print "\n"; - print "\n"; - print "
    "; - print "".__("Package Details")."
    \n"; - print "
    \n"; - print "\n"; - print "\n"; - print " \n"; - print "\n"; - print "\n"; - print " \n"; - print "\n"; - print "\n"; - print " \n"; - print "\n"; - print "\n"; - print " "; - print "\n"; - - print "\n"; - print " \n"; + echo " \n"; + echo "
    "; - print $row["Name"] . " " . $row["Version"]."
    "; - print "".$row["URL"]."
    ".$row["Description"]; - print "
    "; + # + echo "
    \n"; + echo "
    ".__("Package Details")."
    \n"; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " "; - - print "\n"; - print "\n"; - print " \n"; + echo " "; + echo ""; + echo $maintainer . ""; } else { - print $maintainer . ""; + echo $maintainer . ""; } } else { $maintainer = "None"; - print $maintainer . ""; + echo $maintainer . ""; } - print "\n"; - - print "\n"; - print " "; - print "\n"; + echo " \n"; + echo " \n"; # In case of wanting to put a custom message $msg = __("unknown"); $license = $row["License"] == "" ? $msg : $row["License"]; - print "\n"; - print " \n"; - print "\n"; - - print "\n"; - print " "; - print "\n"; + echo " \n"; + echo " \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 "\n"; - print " \n"; - print "\n"; - - print "\n"; - print " "; - print "\n"; - print "\n"; - print " \n"; + echo " \n"; + echo " "; + echo "".__("Tarball")." :: ".__("Files")." :: PKGBUILD"; } elseif ($row["LocationID"] == 3) { - print "CVS"; + echo "CVS"; } - print "\n"; + echo "\n"; if ($row["LocationID"] == 2) { - print "\n"; - print " "; + echo "".__("The above files have been verified (by %s) and are safe to use.", array(username_from_id($row["VerifiedBy"]))).""; } else { - print "".__("Be careful! The above files may contain malicious code that can damage your system.").""; - } + echo "".__("Be careful! The above files may contain malicious code that can damage your system.").""; + } + echo " \n"; } - print "\n"; - print " "; - print "\n"; - print "\n"; - print " \n"; - print "\n"; + echo "\n"; + echo "
    "; + echo $row["Name"] . " " . $row["Version"]."
    "; + echo "".$row["URL"]."
    ".$row["Description"]; + echo "
    "; if ($row["Location"] == "unsupported" and ( uid_from_sid($SID) == $row["MaintainerUID"] or (account_from_sid($SID) == "Developer" or @@ -309,87 +292,65 @@ function package_details($id=0, $SID="") { } else { $edit_cat = $row["Category"]; } - print $row["Location"]." :: ".$edit_cat."
    ".__("Maintainer").": "; + echo $row["Location"]." :: ".$edit_cat."
    ".__("Maintainer").": "; if ($row["MaintainerUID"]) { $maintainer = username_from_id($row["MaintainerUID"]); if ($SID) { - print ""; - print $maintainer . "
    ".__("Votes").": "; - print $row["NumVotes"] . "
    ".__("Votes").": "; + echo $row["NumVotes"] . "

    ".__("License").": ".$license; - print "

    ".__("License").": ".$license; + echo "
    "; - print ""; - print __("Last Updated").": ".$updated_time."
    "; - print __("First Submitted").": ".$submitted_time; - print "
    "; - print "
    "; + echo "
    "; + echo __("Last Updated").": ".$updated_time."
    "; + echo __("First Submitted").": ".$submitted_time."
    "; if ($row["LocationID"] == 2) { global $URL_DIR; $urlpath = $URL_DIR.$row["Name"]."/".$row["Name"]; - print "".__("Tarball")." :: ".__("Files")." :: PKGBUILD
    "; + echo "
    "; if ($row["Safe"]) { - print "".__("The above files have been verified (by %s) and are safe to use.", array(username_from_id($row["VerifiedBy"])))."
    "; - print ""; - print "\n"; - print "\n"; + echo " \n"; + echo " "; - - print " \n"; + echo " "; - print "\n"; - print "\n"; - print " \n"; - print "
    "; - print __("Dependencies")."
    "; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \n"; - print "
    "; + echo __("Dependencies")."
    "; $deps = package_dependencies($row["ID"]); # $deps[0] = array('id','name', 'dummy'); while (list($k, $darr) = each($deps)) { $url = "".$darr[1].$darr[3]."
    \n"; - else print "".$darr[1].$darr[3]."
    \n"; + if ($darr[2] == 0) echo $url."'>".$darr[1].$darr[3]."
    \n"; + else echo "".$darr[1].$darr[3]."
    \n"; } - print "
    "; - print ""; - print "\n"; - print "\n"; + echo "
    "; - print __("Sources")."
    "; + echo "
    \n"; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \n"; - print "
    "; + echo __("Sources")."
    "; $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 "".$src."
    \n"; + echo "".$src."
    \n"; } else { //It is presumably an internal source if ($row["LocationID"] == 2) { - print "".$src."
    \n"; + echo "".$src."
    \n"; } elseif ($row["LocationID"] == 3) { - print ""; - print $src."
    \n"; + echo ""; + echo $src."
    \n"; } } } - print "
    "; - print "
    \n"; - print "\n"; - print "
    \n"; + echo "
    \n"; + echo " \n"; + echo "\n\n"; + echo "
    \n\n"; - print "

    \n"; # Actions Bar # if ($SID) { - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "
    ".__("Actions")."
    \n"; - print "\n"; - print "\n"; + echo "
    \n"; + echo "
    ".__("Actions")."
    \n"; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \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 ""; + echo " "; } else { - print ""; + echo ""; } # 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 ""; + echo ""; } else { - print ""; + echo ""; } # Flag Safe Button # - if ($row["LocationID"] == 2 && (account_from_sid($SID) == "Trusted User" || account_from_sid($SID) == "Developer")) - { - if ($row["Safe"] == 0) - { - print ""; - } - else - { - print ""; + if ($row["LocationID"] == 2 && (account_from_sid($SID) == "Trusted User" || account_from_sid($SID) == "Developer")) { + if ($row["Safe"] == 0) { + echo ""; + } else { + echo ""; } + } + + if ($row["OutOfDate"] == 0) { + echo "\n"; + } else { + echo "\n"; } - if ($row["OutOfDate"] == 0) - { - print "\n"; - } - else - { - print "\n"; - } - if ($row["AURMaintainerUID"] == 0 && $row["MaintainerUID"] == 0) - { - print "\n"; - } + if ($row["AURMaintainerUID"] == 0 && $row["MaintainerUID"] == 0) { + echo "\n"; + } - if ($row["MaintainerUID"] == uid_from_sid($SID)) - { - print "\n"; - } + if ($row["MaintainerUID"] == uid_from_sid($SID)) { + echo "\n"; + } - if ($row["MaintainerUID"] == uid_from_sid($SID) || - account_from_sid($SID) == "Trusted User" || - account_from_sid($SID) == "Developer") - { - print "\n"; - } + if ($row["MaintainerUID"] == uid_from_sid($SID) || + account_from_sid($SID) == "Trusted User" || + account_from_sid($SID) == "Developer") { + echo "\n"; + } - print "

    \n"; + echo " \n"; + echo " \n"; + echo "\n"; + echo "\n
    \n\n"; } # Comments # - print "\n"; - print "\n"; - print "\n"; - print "
    ".__("Comments")."
    "; - - print "\n"; + echo "
    \n"; + echo "
    ".__("Comments")."
    \n"; + echo "
    \n"; + echo "
    \n"; $comments = package_comments($row["ID"]); if (!empty($comments)) { while (list($indx, $carr) = each($comments)) { - print "\n"; - print " \n"; - print "\n"; - print " \n"; + echo " \n"; } } - print "\n"; - print " \n"; - print "\n"; - print " "; - print "\n"; - - print "
    "; - print "
    "; - print ""; - print "\n"; + echo " \n"; - print "\n"; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
    "; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \n"; - print "
    "; if (canDeleteComment($carr["ID"], account_from_sid($SID), $SID)) { $durl = ""; - 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("",$carr["UserName"],"", "",gmdate("Ymd [H:i:s]",$carr["CommentTS"]),"")); } else { - print __("Comment by: %h%s%h on %h%s%h", + echo __("Comment by: %h%s%h on %h%s%h", array("",$carr["UserName"],"", "",gmdate("Ymd [H:i:s]",$carr["CommentTS"]),"")); } - print ""; - print "
    "; - print "\n"; - print str_replace("\n", "
    ", str_replace('"',""", htmlspecialchars(strip_tags(stripslashes($carr["Comments"]))))); - print "
    \n"; - print "
    \n"; - print "
    "; + echo "\n"; + echo str_replace("\n", "
    ", str_replace('"',""", htmlspecialchars(strip_tags(stripslashes($carr["Comments"]))))); + echo "
    \n"; + echo "
    "; - print "
    "; - print "
    \n"; - print "\n"; - print ""; - print "
    \n"; - print "
    \n"; - - - print "
    \n"; + echo " \n"; + echo " \n"; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo "
    \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; } }