Changeset 1553
- Timestamp:
- 02/11/2006 02:12:14 PM (3 years ago)
- Location:
- jlog/trunk
- Files:
-
- 24 modified
-
INSTALL.txt (modified) (5 diffs)
-
README.txt (modified) (2 diffs)
-
admin/blog.func.php (modified) (1 diff)
-
admin/media/upload-teaser.php (modified) (3 diffs)
-
admin/new.php (modified) (3 diffs)
-
admin/settings.php (modified) (1 diff)
-
archive.php (modified) (1 diff)
-
index.php (modified) (3 diffs)
-
lang/lang-admin.inc.php (modified) (1 diff)
-
lang/lang.inc.php (modified) (2 diffs)
-
log.php (modified) (7 diffs)
-
personal/css/admin.css (modified) (1 diff)
-
personal/css/ielte6.css (modified) (1 diff)
-
personal/css/screen.css (modified) (11 diffs)
-
personal/template.tpl (modified) (2 diffs)
-
scripts/bbcode.php (modified) (1 diff)
-
scripts/comments.php (modified) (2 diffs)
-
scripts/do_template.php (modified) (5 diffs)
-
scripts/general.func.php (modified) (8 diffs)
-
scripts/javascripts.js (modified) (9 diffs)
-
scripts/prepend.inc.php (modified) (1 diff)
-
scripts/settings.class.php (modified) (1 diff)
-
scripts/update.php (modified) (1 diff)
-
setup.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
jlog/trunk/INSTALL.txt
r1540 r1553 1 ### Weblogsystem Jlog v 0.2.95-beta vom 15.12.20051 ### Weblogsystem Jlog v1.0.0 vom 10.02.2006 2 2 ### Programmiert von Jeena Paradies 3 3 ### E-Mail: jlog@jeenaparadies.net … … 7 7 ### Inhaltsverzeichnis: 8 8 ### I. Installationsanleitung 9 ### II. Updateanleitung (0.2.8x-beta => 0.2.95-beta) 9 ### II. Updateanleitung (0.2.95-beta => 1.0.0) 10 ### III. Updateanleitung (0.2.8x-beta => 1.0.0) 11 10 12 11 13 … … 17 19 b) Das tar Archiv herunterladen: 18 20 19 tux@earth:/$ wget http://jeenaparadies.net/webdesign/jlog/download/jlog- 0.2.95-beta.tar.gz21 tux@earth:/$ wget http://jeenaparadies.net/webdesign/jlog/download/jlog-1.0.0.tar.gz 20 22 21 23 c) Das Archiv entpacken: 22 24 23 tux@earth:/$ tar -xvzf jlog- 0.2.95-beta.tar.gz25 tux@earth:/$ tar -xvzf jlog-1.0.0.tar.gz 24 26 25 27 Oder mittels WinZip/WinRar etc. … … 53 55 54 56 57 ### II) Updateanleitung 0.2.95-beta => 1.0.0 55 58 56 ### II) Updateanleitung 59 a) Das Updatescript funktioniert wenn man Jlog Version 0.2.95-beta bereits 60 installiert hat. Da sich von 0.2.95-beta an der Datenbank nichts verändert 61 hat muss man nur die neuen PHP Dateien überschreiben. 62 63 c) Das Archiv herunterladen (siehe Installationsanleitung Punkt b), entpacken c) 64 und alle Dateien in das gleiche Verzeichnis hochladen d), dabei werden die 65 alten Dateien überschrieben. Falls man sein altes Template weiternutzen möchte 66 dann bitte das Verzeichnis "personal" NICHT hochladen. Bitte die Datei setup.php 67 aus Sicherheitsgründen löschen. 68 69 e) Überprüfen dass keine Fehler durch veraltete Plugins entstehen. 70 71 72 ### III) Updateanleitung 0.2.8x-beta => 1.0.0 57 73 58 74 a) Das Updatescript funktioniert wenn man Jlog Version 0.2.8x-beta bereits … … 63 79 Dateien und das Verzeichnis "img". 64 80 65 c) Das Archiv herunterladen (siehe Installationsanleitung Punkt b), entpacken (c)66 und alle Dateien in das gleiche Verzeichnis hochladen (d), dabei werden die81 c) Das Archiv herunterladen (siehe Installationsanleitung Punkt b), entpacken c) 82 und alle Dateien in das gleiche Verzeichnis hochladen d), dabei werden die 67 83 alten Dateien überschrieben. Falls man sein altes Template weiternutzen möchte 68 84 dann bitte das Verzeichnis "personal" NICHT hochladen. Bitte die Datei setup.php 69 aus sicherheitsgründen löschen.85 aus Sicherheitsgründen löschen. 70 86 71 87 d) Die Datei update.php im Verzeichnis "admin" im Browser aufrufen, dabei werden 72 88 die benötigten Updates in der Datenbank gemacht. 89 90 e) Überprüfen dass keine Fehler durch veraltete Plugins entstehen. -
jlog/trunk/README.txt
r1539 r1553 11 11 12 12 1) Rückmeldungen über Fehler in der Software 13 2) Mitarbeit an der Software oder Programmiertips 14 3) Geldspende via paypal an money@jeenaparadies.net 13 2) Mitarbeit an der Software (Plugins) oder Programmiertips 14 3) Geldspende via paypal an money@jeenaparadies.net mit der du 15 die Weiterentwicklung unterstützt 15 16 16 -- 17 ### Dankeschön an andere Programmierer 18 17 19 Dieses Programm nutzt zum Auszeichnen der vom Benutzer eingegebenen Daten die 18 20 BBCode-Parserklasse für PHP <http://www.christian-seiler.de/projekte/php/bbcode/> … … 32 34 von Benjamin Wilfing, erhältlich unter: 33 35 <http://aktuell.de.selfhtml.org/tippstricks/php/loginsystem/> 34 --35 36 !!! Achtung !!!37 38 Dies ist eine beta Version des Programmes, es wird dringend39 davon abgeraten sie für den produktiven Einsatz zu benutzen. Der Autor40 haftet für keinen Schaden, der durch den Einsatz dieser Software41 entsteht.42 43 Falls Fehler auftauchen, würde ich mich sehr über einen Bugreport44 via Bugtracker <http://jeenaparadies.net/bugs/index.php?project=1>,45 oder in Form einer E-Mail an jlog@jeenaparadies.net freuen. -
jlog/trunk/admin/blog.func.php
r1541 r1553 4 4 global $l; 5 5 if(empty($form_input['topic'])) $errors[] = $l['admin']['no_headline']; 6 if(empty($form_input['keywords'])) $errors[] = $l['admin']['no_keywords'];7 6 8 7 // checking URL -
jlog/trunk/admin/media/upload-teaser.php
r1548 r1553 21 21 // Überprüfungen: 22 22 unset($errors); 23 23 $e = substr($_FILES['probe']['name'], -4); 24 24 if(!preg_match('~.jpg|jpeg|.gif|.png~i', substr($_FILES['probe']['name'],-4))) $errors[] = $l['admin']['pic_bad_type']." (".$e.")"; 25 25 … … 31 31 { 32 32 case preg_match('~.jpg|jpeg~i', $e): 33 for(;;) { $nr++; if (!file_exists($up_dir. $nr.".jpg")) break; }33 for(;;) { $nr++; if (!file_exists($up_dir."t_".$nr.".jpg")) break; } 34 34 $filename = "t_".$nr.".jpg"; 35 35 break; 36 36 case preg_match('~.gif~i', $e): 37 for(;;) { $nr++; if (!file_exists($up_dir. $nr.".gif")) break; }37 for(;;) { $nr++; if (!file_exists($up_dir."t_".$nr.".gif")) break; } 38 38 $filename = "t_".$nr.".gif"; 39 39 break; 40 40 case preg_match('~.png~i', $e): 41 for(;;) { $nr++; if (!file_exists($up_dir. $nr.".png")) break; }41 for(;;) { $nr++; if (!file_exists($up_dir."t_".$nr.".png")) break; } 42 42 $filename = "t_".$nr.".png"; 43 43 break; … … 56 56 $errors[] = $l['admin']['pic_height']; 57 57 } 58 59 58 if(empty($errors)) { 60 59 if(!move_uploaded_file($_FILES['probe']['tmp_name'], $up_dir.$filename)) $errors[] = $l['admin']['pic_error']; -
jlog/trunk/admin/new.php
r1541 r1553 29 29 if(strlen($blogservice) > 0) $pingresult[] = doPing(trim($blogservice)); 30 30 } 31 if(is_array($pingresult)) $c['main'] .= "\n<ul>".join($pingresult)."\n</ul>";31 // if(is_array($pingresult)) $c['main'] .= "\n<ul>".join($pingresult)."\n</ul>"; 32 32 33 33 if($form_input['allowpingback'] != '0') { … … 38 38 $responces = array(); 39 39 $responces = $pingback->doPingbacks(); 40 41 /* Die Ergebnisse der Pings verwirren den User nur habe ich mittlerweile festgestellt. 42 40 43 if(count($responces) > 0) { 41 44 $c['main'] .= " <ul>"; … … 44 47 } 45 48 $c['main'] .= "\n </ul>"; 46 } 49 } 50 */ 51 47 52 } 48 53 } -
jlog/trunk/admin/settings.php
r1548 r1553 27 27 $c['main'] .= $settings->form_output(); 28 28 } 29 29 require_once(JLOG_BASEPATH.'scripts'.DIRECTORY_SEPARATOR.'update.php'); 30 30 require(JLOG_BASEPATH.'scripts'.DIRECTORY_SEPARATOR.'do_template.php'); 31 31 echo $body; -
jlog/trunk/archive.php
r1540 r1553 50 50 LIMIT ".$p.", ".$amount.";"; 51 51 52 $sql_count = "SELECT count(*) AS count FROM ".JLOG_DB_CONTENT ;52 $sql_count = "SELECT count(*) AS count FROM ".JLOG_DB_CONTENT." WHERE section = 'weblog'"; 53 53 54 54 $count_query = new Query($sql_count); -
jlog/trunk/index.php
r1548 r1553 8 8 $c['meta']['robots'] = "noindex, follow"; 9 9 $c['meta']['description'] = htmlspecialchars(strip_tags(JLOG_DESCRIPTION), ENT_QUOTES); 10 $c['meta']['title'] = $l['index_topic'];10 $c['meta']['title'] = $l['index_topic']; 11 11 12 12 $c['main'] = ""; … … 58 58 59 59 // -- Liste mit alten Beiträgen ausgeben 60 $linklist = false; 60 61 while ($cd = $blog->fetch()) { 61 62 if(empty($c['meta']['date'])) $c['meta']['date'] = $cd['metadate']; 62 63 ++$i; 64 $linklist = true; 63 65 64 66 $tmp_comments = ""; … … 69 71 } 70 72 71 if($ number_of > JLOG_MAX_BLOG_BIG) $c['main'] .= "\n </ul>\n <hr />";73 if($linklist) $c['main'] .= "\n </ul>\n <hr />"; 72 74 73 75 // -- Link zum Archiv -
jlog/trunk/lang/lang-admin.inc.php
r1539 r1553 32 32 "url_duplicate" => "Während eines Monats darf ein URL nur ein einziges mal vorkommen sonst kann das Blog sie nicht auseinanderhalten", 33 33 "url_duplicate_page" => "Pages müssen unikate URLs haben, das heißt, dass jede page einen anderen URL haben muss", 34 "no_keywords" => "Keywords fehlen",35 34 "false_teaserpic" => "Die Angabe des Bildes für die Zusammenfassung stimmt nicht, ein solches Bild wurde nicht hochgeladen", 36 35 "no_teaserpic_uploaded" => "Das Bild für die Zusammenfassung kann nicht im Blog angezeigt werden wenn es nicht hochgeladen wurde", -
jlog/trunk/lang/lang.inc.php
r1539 r1553 5 5 "subnav_current" => "Aktuelle Einträge", 6 6 "subnav_info" => "Informationen", 7 "subnav_rss" => "Aktuelles von dieser Seite per RSS Feed. Mehr darüber erfahren Sie auf der Seite von <a href='http://uckan.info/ wasistrss.htm'>Alp Uçkan</a>.",7 "subnav_rss" => "Aktuelles von dieser Seite per RSS Feed. Mehr darüber erfahren Sie auf der Seite von <a href='http://uckan.info/texte/was-ist-rss/'>Alp Uçkan</a>.", 8 8 "subnav_copyright" => "Alle Rechte vorbehalten.", 9 9 "subnav_powered" => "Powered by", … … 30 30 "content_cat_linklist" => "zugeordnete Kategorien", 31 31 "content_cat_link" => "Alle Einträge dieser Kategorie anzeigen", 32 "content_categorieslist_h" => "Kategorien", 32 33 "content_archive_preview" => "Vorherige Seite", 33 34 "content_archive_next" => "Nächste Seite", -
jlog/trunk/log.php
r1548 r1553 53 53 ORDER BY date;"; 54 54 55 // Topic comments in mails56 $ctitle = htmlspecialchars($blogentry['topic'], ENT_QUOTES); // potential to discard57 58 55 $c['meta']['date'] = $blogentry['metadate']; 59 56 $c['meta']['description'] = strip_tags($bbcode->parse($blogentry['teaser'])); … … 83 80 $countComments = 0; 84 81 while($commentsArray[] = $comments->fetch()); 85 foreach($commentsArray as $tmp_comment) if($tmp_comment['type'] == 'pingback') ++$countComments; 86 87 $number_of_comments = $countComments + 1; 82 foreach($commentsArray as $tmp_comment) if($tmp_comment['type'] != 'pingback') ++$countComments; 88 83 89 84 $preview = ""; … … 91 86 $clear_form = com_clean_data($com_form); 92 87 $clear_form['id'] = ""; 93 88 94 89 $preview .= " 95 90 <ul class='comments' id='preview'> 96 ".do_comment($clear_form, $ number_of_comments)."91 ".do_comment($clear_form, $countComments)." 97 92 </ul>"; 98 93 … … 183 178 184 179 185 $mail['text'] = $l['admin']['comments_mail_txt']." »".$ ctitle."«\n- -\n";180 $mail['text'] = $l['admin']['comments_mail_txt']." »".$blogentry['topic']."«\n- -\n"; 186 181 if(isset($com_form['name'])) $mail['text'] .= $com_form['name']; 187 182 else $mail['text'] .= $l['admin']['comments_anonym']; … … 192 187 $mail['text'] .= "\n\n".$l['admin']['kill_c_email']."\n".JLOG_PATH."/admin/comments.php?action=trash&id=".$cid; 193 188 194 @mail(JLOG_EMAIL, $l['admin']['comments_mailsubject']." - ".$ ctitle, $mail['text'], $mail['headers']);189 @mail(JLOG_EMAIL, $l['admin']['comments_mailsubject']." - ".$blogentry['topic'], $mail['text'], $mail['headers']); 195 190 } 196 191 … … 198 193 ."X-Mailer: PHP/".phpversion(); 199 194 200 $mail['text'] = $l['comments_mail_txt']." »".$ ctitle."«\n- -\n";195 $mail['text'] = $l['comments_mail_txt']." »".$blogentry['topic']."«\n- -\n"; 201 196 if(isset($com_form['name'])) $mail['text'] .= $com_form['name']; 202 197 else $mail['text'] .= $l['comments_anonym']; … … 210 205 while ($data = $comment_mail->fetch()) { 211 206 if($data['email'] != $com['email']) { 212 @mail($data['email'], $l['comments_mailsubject']." - ".$ ctitle, $mail['text'].$data['email'], $mail['headers']);207 @mail($data['email'], $l['comments_mailsubject']." - ".$blogentry['topic'], $mail['text'].$data['email'], $mail['headers']); 213 208 } 214 209 } -
jlog/trunk/personal/css/admin.css
r1292 r1553 14 14 #admin form textarea.big { height: 15em; } 15 15 16 #admin table { empty-cells: show; border-spacing: 0; }16 #admin table { empty-cells: show; border-spacing: 0; font-size: 1em; } 17 17 #admin table tr td, 18 18 #admin table tr th { padding: 3px 8px; border-left: 1px dotted #bdaa94; vertical-align: top; } -
jlog/trunk/personal/css/ielte6.css
r1300 r1553 3 3 */ 4 4 5 #pokal { /* do not display the alpha image */ 6 display: none; 7 } 8 9 #container { /* IE max-width hack */ 10 height: 1%; 11 width: 750px; 12 width:expression(document.body.clientWidth>805?"800px":"auto"); 13 } 5 #pokal { /* do not display the alpha image */ 6 display: none; 7 } 8 9 #container { /* IE max-width and PNG no-alpha hack */ 10 height: 1%; 11 width: 750px; 12 width:expression(document.body.clientWidth>805?"800px":"auto"); 13 background-image: url(img/banner-ielte6.jpg); 14 } 14 15 15 #main { /* IE no-alpha-png hack */ 16 background: url(img/banner-ielte6.jpg) no-repeat left top; 17 } 16 #main { width: 63%; margin: 0 0 0 15px; } 18 17 19 #admin table { /* adapting the font size for IE 5.x */ 20 font-size: 1em; 21 } 22 23 * html #subnav { /* Box-Model Bug */ 24 content:"\"; width: 30%; padding: 2em 1.5em; 25 } 26 27 html + body #admin { /* close the hole in IE 5.0 */ 28 margin: 0; 29 } 18 ul.comments li { 19 overflow-x: scroll; 20 } 21 22 #admin table { /* adapting the font size for IE 5.x */ 23 font-size: 1em; 24 } 25 26 * html #subnav { /* Box-Model Bug */ 27 content:"\"; width: 30%; padding: 2em 1.5em; 28 } 29 30 * html #main { width: 62.5%; margin: 0 0 0 15px; } 31 32 html + body #admin { /* close the hole in IE 5.0 */ 33 margin: 0; 34 } -
jlog/trunk/personal/css/screen.css
r1540 r1553 22 22 margin: 0 auto; 23 23 max-width: 800px; 24 background: white;24 background: url(img/banner.jpg) no-repeat 0 2.4em white; 25 25 border: 1px solid #2B2B2B; 26 26 border-top: 0; … … 28 28 } 29 29 #main { 30 background: url(img/banner.jpg) no-repeat top right; 31 margin: 0; 32 padding: 190px 32.5% 1em 25px; 33 } 30 margin: 0 0 0 25px; 31 padding: 190px 0 2em 0; 32 width: 64.5%; 33 float: left; 34 } 35 36 /* Clearfix-Hack */ 37 #main:after { 38 content: "."; 39 display: block; 40 height: 0; 41 clear: both; 42 visibility: hidden; 43 } 44 45 #main {display: inline-table;} 46 47 /* Hides from IE-mac \*/ 48 * html #main {height: 1%;} 49 #main {display: block;} 50 /* End hide from IE-mac */ 34 51 35 52 /* -- logo -- */ … … 39 56 padding: 0 5%; 40 57 margin: 0; 41 background: url(img/cheese.png) right bottom repeat-y ;58 background: url(img/cheese.png) right bottom repeat-y white; 42 59 } 43 60 h1 a:link, h1 a:visited { color: black; text-decoration: none; } … … 58 75 #subnav { 59 76 width: 26%; 60 margin: 1em 0;77 margin: 1em 1px 1em 0; 61 78 float: right; 62 79 margin-top: 165px; … … 74 91 line-height: 120%; 75 92 } 76 #subnav . subcurrentlist {93 #subnav .categorieslist, #subnav .subcurrentlist { 77 94 margin: 0; padding: 0; 78 95 list-style-type: none; 79 96 } 80 #subnav . subcurrentlist li { margin-bottom: 0.5em; }97 #subnav .categorieslist li, #subnav .subcurrentlist li { margin-bottom: 0.5em; } 81 98 .rss img { vertical-align: middle; border: 0; width: 94px; height: 15px; } 82 99 … … 99 116 border: 0 none; 100 117 height: 1px; 118 margin: 1em 0; 119 clear: both; 101 120 } 102 121 .error { color: red; } … … 122 141 #main dl.img dt img { margin: 0; padding: 0; max-width: 100%; border: none; } 123 142 dl.img dd { margin: 0; padding: 0 0.3em; font-size: 90%; } 143 .teaser { clear: both; } 124 144 125 145 /* -- main link styles -- */ … … 147 167 148 168 /* -- textareas and inputs -- */ 149 fieldset { border: 1px solid #aaa; padding: 1em; }169 fieldset { border: 1px solid #aaa; padding: 1em; } 150 170 legend { padding: 1em; font-weight: bold; } 151 171 input.long, input.short, input.userdata, textarea, select { … … 162 182 .entries , .search li { list-style-type: none; } 163 183 .search li { border-top: 1px solid #d8d8d8; padding-top: 1em; } 164 ul.search { margin: auto 5%; padding : auto auto auto0; }184 ul.search { margin: auto 5%; padding-left: 0; } 165 185 h2.search { text-align: center; } 166 186 .archive { margin-left: 5%; } … … 168 188 169 189 /* -- comments -- */ 170 p.hidecomments { font-size: 0.75em; text-align: right; line-height: 0; padding: 0; margin-bottom: 0; }190 p.hidecomments { font-size: 0.75em; text-align: right; line-height: 1px; padding: 0; margin-bottom: 0; } 171 191 #preview li { border: solid 1px red; } 172 192 ul.comments .meta { font-size: 1.3em; } … … 179 199 border-left: 1px solid #d8d8d8; 180 200 border-top: 1px solid #D8D8D8; 201 overflow-x: scroll; 181 202 } 182 203 ul.comments li p { margin: 0.5em; } -
jlog/trunk/personal/template.tpl
r1540 r1553 14 14 <dl id="subnav"> 15 15 <dt class="first"><jlog:slogan-h /></dt> 16 <dd><jlog:slogan /></dd> 16 <dd><jlog:slogan /></dd> 17 17 <dt><jlog:search-h /></dt> 18 18 <dd> … … 25 25 <dd><jlog:subcurrent /></dd> 26 26 <dd><jlog:archive-more /> <a href="<jlog:homelink />/archive.php"><jlog:archive /></a>.</dd> 27 <dt><jlog:categorieslist-h /></dt> 28 <dd><jlog:categorieslist class="categorieslist" /></dd> 27 29 <dt><jlog:sub-info /></dt> 28 30 <dd class="rss"><jlog:rss-link /><br /> <jlog:rss-info /></dd> -
jlog/trunk/scripts/bbcode.php
r1551 r1553 22 22 if (!isset ($attributes['default'])) { 23 23 if (strpos($content, "/") === 0) $content = JLOG_PATH.$content; 24 return '<a href="'.htmlspecialchars($content).'">'. htmlspecialchars($content).'</a>';24 return '<a href="'.htmlspecialchars($content).'">'.$content.'</a>'; 25 25 } 26 26 if (strpos($content, "/") === 0) $attributes['default'] = JLOG_PATH.$attributes['default']; 27 return '<a href="'.htmlspecialchars($attributes['default']).'">'. htmlspecialchars($content).'</a>';27 return '<a href="'.htmlspecialchars($attributes['default']).'">'.$content.'</a>'; 28 28 } 29 29 -
jlog/trunk/scripts/comments.php
r1548 r1553 81 81 function com_clean_data($data) { 82 82 global $l; 83 if( $data['name'] == "" OR $data['name'] == $l['comments_name']) $data['name'] == "";84 if( $data['city'] == "" OR $data['name'] == $l['comments_name']) $data['city'] == "";85 if( $data['email'] == "" OR $data['name'] == $l['comments_name']) $data['email'] == "";86 if( $data['homepage'] == "" OR $data['homepage'] == $l['comments_homepage']) $data['homepage'] == "";83 if(empty($data['name']) OR $data['name'] == $l['comments_name']) $data['name'] = ""; 84 if(empty($data['city']) OR $data['city'] == $l['comments_city']) $data['city'] = ""; 85 if(empty($data['email']) OR $data['email'] == $l['comments_email']) $data['email'] = ""; 86 if(empty($data['homepage']) OR $data['homepage'] == $l['comments_homepage']) $data['homepage'] = ""; 87 87 88 88 if(empty($data['date'])) $data['date'] = time(); … … 120 120 <li id='c".$data['id']."'> 121 121 <p class='meta'><a class='permalink' title='".$l['comments_permalink']."' href='#c".$data['id']."'>".$nr."</a> <cite>"; 122 if( isset($meta['homepage'])) $comment .= "<a title='".$meta['homepage']."' href='".$meta['homepage']."'>";123 if( isset($meta['name'])) $comment .= $meta['name'];122 if(!empty($meta['homepage'])) $comment .= "<a title='".$meta['homepage']."' href='".$meta['homepage']."'>"; 123 if(!empty($meta['name'])) $comment .= $meta['name']; 124 124 else $comment .= $l['comments_anonym']; 125 if( isset($meta['homepage'])) $comment .= "</a>";125 if(!empty($meta['homepage'])) $comment .= "</a>"; 126 126 $comment .= "</cite>"; 127 if( isset($meta['city'])) $comment .= " ".$l['comments_from']." ".$meta['city'];127 if(!empty($meta['city'])) $comment .= " ".$l['comments_from']." ".$meta['city'];
