Page 50 of 50 FirstFirst ... 40484950
Results 491 to 500 of 500
  1. #491
    Join Date
    Sep 2008
    Location
    DownUnder, overlooking South Pole.
    Posts
    984
    Plugin Contributions
    6

    Default Re: Event Calendar

    Re: tpl_events_calendar_include_default.php

    I too experienced lots of error logs with this and remmed it with no ill effect.

    My records indicate it was introduced in ec_4_alpha_rus_alpha.04 (18 April 2013), when Rus was looking into fixing the sidebox dropdowns. So maybe the break was to close one or other case he was testing.

    http://php.net/manual/en/control-structures.break.php

    I have also been wondering about the preceeding </html> tag, in fact everyting after </table>. I suspect the </html> has something to do with removing the iframe code edit previously required for tpl_main_page.php, but which should have a corresponding <html>. However, I have not yet looked any further into this.

    On a more cheerful note, I have the whole mod ready for packaging, but for the above and a few minor (css) issues.

    Cheers

  2. #492
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    Plugin Contributions
    32

    Default Re: Event Calendar

    Quote Originally Posted by dw08gm View Post
    Re: tpl_events_calendar_include_default.php

    I too experienced lots of error logs with this and remmed it with no ill effect.

    My records indicate it was introduced in ec_4_alpha_rus_alpha.04 (18 April 2013), when Rus was looking into fixing the sidebox dropdowns. So maybe the break was to close one or other case he was testing.

    http://php.net/manual/en/control-structures.break.php

    I have also been wondering about the preceeding </html> tag, in fact everyting after </table>. I suspect the </html> has something to do with removing the iframe code edit previously required for tpl_main_page.php, but which should have a corresponding <html>. However, I have not yet looked any further into this.

    On a more cheerful note, I have the whole mod ready for packaging, but for the above and a few minor (css) issues.

    Cheers
    and will you be posting it for us to all review before submitting??
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  3. #493
    Join Date
    Mar 2013
    Location
    New Orleans
    Posts
    81
    Plugin Contributions
    0

    Default Re: Event Calendar

    Quote Originally Posted by DivaVocals View Post
    Found another issue:

    on line 168 of includes/templates/custom_template/templates/tpl_events_calendar_include_default.php

    there is this:
    Code:
    <?php break 10; ?>
    It was causing the following error log message:


    I removed it and it stopped the error logs from generating.. the problem is I'm not sure if removing this is the right thing since I'm not entirely sure what that line was supposed to do..
    Well that took me longer than it should of...I could not figure out why I was not getting an error and you two were, until I figured out that Zen Carts redirects it's errors into a different folder/file than my php error log (remember, I'm still relatively new to Zen Cart). Anyway, in the php docs all the way at the end it shows that someone was trying to use a break from an included file and it was causing an error. It doesn't say anything about using excessive breaks to "break" out of previous loops/switches. Normally I would not use this type of shortcut, but with not knowing what preceded the call to the event calendar sidebox script I tried the excessive break. It appeared to do what I wanted and did it without throwing an exception (or atleast I thought...because I was only checking the default php error log). What I was aiming for was to stop any further module calls from the parent script so no more html would be output...hence the added closing "</html>" tag. I also wanted to allow for a return to the parent script so that any "cleanup" could be handled...the main thing I was worried about was that the session variables could get out of sync.

    Note: when you remove the break statement you allow the parent zen cart script to continue normal operation, if you look at the sidebox source (after removing the break) you will see that all remaining sideboxes, footers, and main body html will now (again) be returned. I tried to capture the buffer again, but once php ends it releases anything stored up in the buffer...the only other option would be to go back in and edit the main zen script, so the quick "for now" solution is to do what I "accidentally" accomplished with the "break 10;" statement...and that is to throw an error to abort anything else from tacking on output. We can accomplish this in an "obvious" way by replacing the statement above with:
    Code:
    <?php
    //**rus: used to escape from any continued output
    error_reporting(0);
    trigger_error("",E_USER_ERROR);
    ?>
    Now...again, I want to say that this sidebox call should probably be reconfigured to use an ajax/sjax solution at some point in time. You are not returning to the parent script at all, but we proved (again accidentally) that there are no adverse affects (that I can detect), such as session variables not being set. Of course this could change in a future version of Zen Cart.

    Thanks,
    Rus
    Last edited by LaCamus; 1 May 2013 at 08:29 PM.

  4. #494
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    Plugin Contributions
    32

    Default Re: Event Calendar

    Quote Originally Posted by LaCamus View Post
    Well that took me longer than it should of...I could not figure out why I was not getting an error and you two were, until I figured out that Zen Carts redirects it's errors into a different folder/file than my php error log (remember, I'm still relatively new to Zen Cart). Anyway, in the php docs all the way at the end it shows that someone was trying to use a break from an included file and it was causing an error. It doesn't say anything about using excessive breaks to "break" out of previous loops/switches. Normally I would not use this type of shortcut, but with not knowing what preceded the call to the event calendar sidebox script I tried the excessive break. It appeared to do what I wanted and did it without throwing an exception (or atleast I thought...because I was only checking the default php error log). What I was aiming for was to stop any further module calls from the parent script so no more html would be output...hence the added closing "</html>" tag. I also wanted to allow for a return to the parent script so that any "cleanup" could be handled...the main thing I was worried about was that the session variables could get out of sync.

    Note: when you remove the break statement you allow the parent zen cart script to continue normal operation, if you look at the sidebox source (after removing the break) you will see that all remaining sideboxes, footers, and main body html will now (again) be returned. I tried to capture the buffer again, but once php ends it releases anything stored up in the buffer...the only other option would be to go back in and edit the main zen script, so the quick "for now" solution is to do what I "accidentally" accomplished with the "break 10;" statement...and that is to throw an error to abort anything else from tacking on output. We can accomplish this in an "obvious" way by replacing the statement above with:
    Code:
    <?php
    //**rus: used to escape from any continued output
    error_reporting(0);
    trigger_error("",E_USER_ERROR);
    ?>
    Now...again, I want to say that this sidebox call should probably be reconfigured to use an ajax/sjax solution at some point in time. You are not returning to the parent script at all, but we proved (again accidentally) that there are no adverse affects (that I can detect), such as session variables not being set. Of course this could change in a future version of Zen Cart.

    Thanks,
    Rus
    I am all for a different method to render this calendar in a sidebox.. Never was fully comfortable that the iframe method was the "right" way to go as much as it seemed to be a "down & dirty" solution that mostly works.. (part of the reason I introduced the other two sideboxes with links to the calendar pages to the fileset) I'm not anti iframe, I just have never been convinced that this is the right application of an iframe..
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  5. #495
    Join Date
    Sep 2008
    Location
    DownUnder, overlooking South Pole.
    Posts
    984
    Plugin Contributions
    6

    Default Re: Event Calendar

    Rus Diva

    Please find attached proposed final version, including Rus' latest amendments, which I have not tested.

    Some additional changes not previously mentioned:

    1. \includes\classes\events_calendar.php
    added an extra bracket in sidebox month heading previous/next links because the single brackets were hard to hit with cursor.
    changed
    Code:
             $prevMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' .$this->getCalendarLink($prev[0], $prev[1]).' target=calendar title='. $this->monthNames[$month - 2] . (($month-2 < 1) ? $D.($year-1) : '&nbsp;'. $year) .' >&lt;</a>';
    
             $nextMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' . $this->getCalendarLink($next[0], $next[1]).' target=calendar title='. $this->monthNames[$month + 0] . (($month+0 > 11) ? $J.($year+1) : '&nbsp;'. $year) .' >&gt;</a>';
    to

    Code:
             $prevMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' .$this->getCalendarLink($prev[0], $prev[1]).' target=calendar title='. $this->monthNames[$month - 2] . (($month-2 < 1) ? $D.($year-1) : '&nbsp;'. $year) .' >&lt;&lt;</a>';
    
             $nextMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' . $this->getCalendarLink($next[0], $next[1]).' target=calendar title='. $this->monthNames[$month + 0] . (($month+0 > 11) ? $J.($year+1) : '&nbsp;'. $year) .' >&gt;&gt;</a>';

    2. \includes\modules\events_calendar_listing.php
    \includes\templates\amanita\css\events_calendar.css
    event_description_dates - changed to event_dates_start and event_dates_end
    event_dates_start - removed font-size, width, added padding rhs, white-space: nowrap;
    event_dates_end - removed font-size, width, added padding rhs, white-space: nowrap;
    event_header_dates - added white-space: nowrap;

    changed

    Code:
            list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['start_date']);
            $list_box_contents[$row][] = array(
    							'align'  => 'center',
    							'params' => 'class="event_description_dates"',
    							'text'   => date("F j, Y", mktime(0, 0, 0, $month, $day, $year)));
            $endDate = '-';
              if(isset($events->fields['end_date']) && trim($events->fields['end_date']) != '')
              {
                list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['end_date']);
                $endDate = date("F j, Y", mktime(0, 0, 0, $month, $day, $year));
              }
            $list_box_contents[$row][] = array(
    							'align'  => 'center',
    							'params' => 'class="event_description_dates"',
    							'text'   => $endDate);
    to

    Code:
            list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['start_date']);
            $list_box_contents[$row][] = array(
    							'align'  => 'center',
    							'params' => 'class="event_dates_start"',
    							'text'   => date("F j, Y", mktime(0, 0, 0, $month, $day, $year)));
            $endDate = '-';
              if(isset($events->fields['end_date']) && trim($events->fields['end_date']) != '')
              {
                list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['end_date']);
                $endDate = date("F j, Y", mktime(0, 0, 0, $month, $day, $year));
              }
            $list_box_contents[$row][] = array(
    							'align'  => 'center',
    							'params' => 'class="event_dates_end"',
    							'text'   => $endDate);

    3. Something else that could be addressed now or later. The next year heading links in Yearly Calendar in main column needs to be limited to the same value (=5) as sidebox, as customer can keep clicking to view forward years. I stopped at 20 years forward, but could have gone further.

    I hope you approve.

    Cheers
    Attached Files Attached Files

  6. #496
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    Plugin Contributions
    32

    Default Re: Event Calendar

    Quote Originally Posted by dw08gm View Post
    Rus Diva

    Please find attached proposed final version, including Rus' latest amendments, which I have not tested.

    Some additional changes not previously mentioned:

    1. \includes\classes\events_calendar.php
    added an extra bracket in sidebox month heading previous/next links because the single brackets were hard to hit with cursor.
    changed
    Code:
             $prevMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' .$this->getCalendarLink($prev[0], $prev[1]).' target=calendar title='. $this->monthNames[$month - 2] . (($month-2 < 1) ? $D.($year-1) : '&nbsp;'. $year) .' >&lt;</a>';
    
             $nextMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' . $this->getCalendarLink($next[0], $next[1]).' target=calendar title='. $this->monthNames[$month + 0] . (($month+0 > 11) ? $J.($year+1) : '&nbsp;'. $year) .' >&gt;</a>';
    to

    Code:
             $prevMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' .$this->getCalendarLink($prev[0], $prev[1]).' target=calendar title='. $this->monthNames[$month - 2] . (($month-2 < 1) ? $D.($year-1) : '&nbsp;'. $year) .' >&lt;&lt;</a>';
    
             $nextMonth = '<a href=index.php?main_page='. FILENAME_EVENTS_CALENDAR_INCLUDE . '&eventmode=eventframe' . $this->getCalendarLink($next[0], $next[1]).' target=calendar title='. $this->monthNames[$month + 0] . (($month+0 > 11) ? $J.($year+1) : '&nbsp;'. $year) .' >&gt;&gt;</a>';

    2. \includes\modules\events_calendar_listing.php
    \includes\templates\amanita\css\events_calendar.css
    event_description_dates - changed to event_dates_start and event_dates_end
    event_dates_start - removed font-size, width, added padding rhs, white-space: nowrap;
    event_dates_end - removed font-size, width, added padding rhs, white-space: nowrap;
    event_header_dates - added white-space: nowrap;

    changed

    Code:
            list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['start_date']);
            $list_box_contents[$row][] = array(
                                'align'  => 'center',
                                'params' => 'class="event_description_dates"',
                                'text'   => date("F j, Y", mktime(0, 0, 0, $month, $day, $year)));
            $endDate = '-';
              if(isset($events->fields['end_date']) && trim($events->fields['end_date']) != '')
              {
                list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['end_date']);
                $endDate = date("F j, Y", mktime(0, 0, 0, $month, $day, $year));
              }
            $list_box_contents[$row][] = array(
                                'align'  => 'center',
                                'params' => 'class="event_description_dates"',
                                'text'   => $endDate);
    to

    Code:
            list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['start_date']);
            $list_box_contents[$row][] = array(
                                'align'  => 'center',
                                'params' => 'class="event_dates_start"',
                                'text'   => date("F j, Y", mktime(0, 0, 0, $month, $day, $year)));
            $endDate = '-';
              if(isset($events->fields['end_date']) && trim($events->fields['end_date']) != '')
              {
                list($year, $month, $day) = preg_split('/[\/.-]/', $events->fields['end_date']);
                $endDate = date("F j, Y", mktime(0, 0, 0, $month, $day, $year));
              }
            $list_box_contents[$row][] = array(
                                'align'  => 'center',
                                'params' => 'class="event_dates_end"',
                                'text'   => $endDate);

    3. Something else that could be addressed now or later. The next year heading links in Yearly Calendar in main column needs to be limited to the same value (=5) as sidebox, as customer can keep clicking to view forward years. I stopped at 20 years forward, but could have gone further.

    I hope you approve.

    Cheers
    The CSS changes make sense, and I was going to tackle them, but then got caught up in making sure things worked from a functionaly perspective.. So kudos for you for doing what I had not done.. Also I am going to add one more link to the More Information and Information sideboxes.. I forgot to include the yearly page view. Might as well do it now before someone asks after it..

    Gonna test your package tomorrow as I am working from home so I can care for my BFF (whos is having knee surgery). I should have plenty of peace and quiet as I expect she will be drugged up most of the day..

    I will also add in some minor mods to the install script.. In my recent Zen Cart travels of creating a custom product type, I found a better way to handle some of the option values than what I used..


    Looking forward to seeing it all in action..
    Last edited by DivaVocals; 2 May 2013 at 07:03 PM.
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  7. #497
    Join Date
    Sep 2008
    Location
    DownUnder, overlooking South Pole.
    Posts
    984
    Plugin Contributions
    6

    Default Re: Event Calendar

    Two more code changes

    1. In \includes\classes\events_calendar.php, around line 265
    Using the admin define for NUMBER_OF_YEARS, this limits the number of years that can be clicked forwards in Year View.

    Replaced
    Code:
                   if($year > $this_year)
            {
            $s .= "<td class=\"yearHeader\" align=\"center\" align=\"left\">" . (($prev == "") ? "&nbsp;" : "<a href=\"$prev\">&lt;&lt;</a>")  . "</td>\n";
            }
            else
            {
            $s .= "<td class=\"yearHeader\" align=\"center\" align=\"left\">&nbsp;</td>\n";
            }
            $s .= "<td height=\"20\" class=\"yearHeader\" align=\"center\">" . (($this->startMonth > 1) ? $year . " - " . ($year + 1) : $year) ."</td>\n";
                $s .= "<td class=\"yearHeader\" align=\"center\" align=\"right\">" . (($next == "") ? "&nbsp;" : "<a href=\"$next\">&gt;&gt;</a>")  . "</td>\n";
                $s .= "</tr>\n";        $s .= "<tr>";        $s .= "<td valign=\"top\">" . $this->getMonthHTML(0 + $this->startMonth, $year, 0) ."</td>\n";
    with

    Code:
    			if($year > $this_year) {
    				$s .= "<td class=\"yearHeader\" align=\"center\">" . (($prev == "") ? "&nbsp;" : "<a href=\"$prev\">&lt;&lt;</a>")  . "</td>\n";
    			} else {
    				$s .= "<td class=\"yearHeader\" align=\"center\">&nbsp;</td>\n";
    			}
    		$s .= "<td height=\"20\" class=\"yearHeader\" align=\"center\">" . (($this->startMonth > 1) ? $year . " - " . ($year + 1) : $year) ."</td>\n";
    			if($year < $this_year + (NUMBER_OF_YEARS - 1)) {
    				$s .= "<td class=\"yearHeader\" align=\"center\">" . (($next == "") ? "&nbsp;" : "<a href=\"$next\">&gt;&gt;</a>")  . "</td>\n";
    			} else {
    				$s .= "<td class=\"yearHeader\" align=\"center\">&nbsp;</td>\n";
    			}
    		$s .= "</tr>\n";
    		$s .= "<tr>\n";
    			$s .= "<td valign=\"top\">" . $this->getMonthHTML(0 + $this->startMonth, $year, 0) ."</td>\n";

    2. In \includes\templates\amanita\templates\tpl_events_calendar_include_default.php

    replaced old <form> tag with zen_draw_form

    Code:
    <form style="margin:0; padding:0;" method="get" name="calendar" action="index.php?main_page=events_calendar">
    with

    Code:
    <?php echo zen_draw_form('calendar', zen_href_link(FILENAME_EVENTS_CALENDAR, '', 'NONSSL', false), 'get'); ?>
    With these and a few other minor changes, I am about to upload the mod to plugins.

    Cheers

  8. #498
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    Plugin Contributions
    32

    Default Re: Event Calendar

    Quote Originally Posted by dw08gm View Post
    Two more code changes

    1. In \includes\classes\events_calendar.php, around line 265
    Using the admin define for NUMBER_OF_YEARS, this limits the number of years that can be clicked forwards in Year View.

    Replaced
    Code:
                   if($year > $this_year)
            {
            $s .= "<td class=\"yearHeader\" align=\"center\" align=\"left\">" . (($prev == "") ? "&nbsp;" : "<a href=\"$prev\">&lt;&lt;</a>")  . "</td>\n";
            }
            else
            {
            $s .= "<td class=\"yearHeader\" align=\"center\" align=\"left\">&nbsp;</td>\n";
            }
            $s .= "<td height=\"20\" class=\"yearHeader\" align=\"center\">" . (($this->startMonth > 1) ? $year . " - " . ($year + 1) : $year) ."</td>\n";
                $s .= "<td class=\"yearHeader\" align=\"center\" align=\"right\">" . (($next == "") ? "&nbsp;" : "<a href=\"$next\">&gt;&gt;</a>")  . "</td>\n";
                $s .= "</tr>\n";        $s .= "<tr>";        $s .= "<td valign=\"top\">" . $this->getMonthHTML(0 + $this->startMonth, $year, 0) ."</td>\n";
    with

    Code:
                if($year > $this_year) {
                    $s .= "<td class=\"yearHeader\" align=\"center\">" . (($prev == "") ? "&nbsp;" : "<a href=\"$prev\">&lt;&lt;</a>")  . "</td>\n";
                } else {
                    $s .= "<td class=\"yearHeader\" align=\"center\">&nbsp;</td>\n";
                }
            $s .= "<td height=\"20\" class=\"yearHeader\" align=\"center\">" . (($this->startMonth > 1) ? $year . " - " . ($year + 1) : $year) ."</td>\n";
                if($year < $this_year + (NUMBER_OF_YEARS - 1)) {
                    $s .= "<td class=\"yearHeader\" align=\"center\">" . (($next == "") ? "&nbsp;" : "<a href=\"$next\">&gt;&gt;</a>")  . "</td>\n";
                } else {
                    $s .= "<td class=\"yearHeader\" align=\"center\">&nbsp;</td>\n";
                }
            $s .= "</tr>\n";
            $s .= "<tr>\n";
                $s .= "<td valign=\"top\">" . $this->getMonthHTML(0 + $this->startMonth, $year, 0) ."</td>\n";

    2. In \includes\templates\amanita\templates\tpl_events_calendar_include_default.php

    replaced old <form> tag with zen_draw_form

    Code:
    <form style="margin:0; padding:0;" method="get" name="calendar" action="index.php?main_page=events_calendar">
    with

    Code:
    <?php echo zen_draw_form('calendar', zen_href_link(FILENAME_EVENTS_CALENDAR, '', 'NONSSL', false), 'get'); ?>
    With these and a few other minor changes, I am about to upload the mod to plugins.

    Cheers
    Haven't had a chance to review.. Been busy with family and work stuff.. Will take a looksee later this week.. By all means go ahead and submit it.. If I find anything significant in my testing I will certainly let ya know about it.. An new update can always be submitted after if it's needed..
    Last edited by DivaVocals; 13 May 2013 at 02:39 PM.
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  9. #499
    Join Date
    Sep 2008
    Location
    DownUnder, overlooking South Pole.
    Posts
    984
    Plugin Contributions
    6

    Default Re: Event Calendar

    Response from Plugins moderator

    ok. Can you just spend a bit more time and go through your new admin files

    ./events_manager_rec_poll.php
    ./includes/functions/events_manager_functions.php
    ./includes/events_manager_drop_dns.php
    ./events_manager.php

    and improve the handling of $_POST variables?

    Look at (for example) admin/customers.php. Do you see how these variables are pre-processed with zen_db_prepare_input()? This prevents people from sneaking in harmful data.
    I have not looked into this yet, so cannot say how difficult this may be to fix, at least for me.

    cheers

  10. #500
    Join Date
    Sep 2008
    Location
    DownUnder, overlooking South Pole.
    Posts
    984
    Plugin Contributions
    6

    Default Re: Event Calendar

    Events Calendar Version 4

    This mod has been upgraded for zen cart 1.50+, including many new/revised features, and is available at:

    http://www.zen-cart.com/downloads.php?do=file&id=521

    A new forum thread has been opened specificially for this upgraded version at

    http://www.zen-cart.com/showthread.p...Support-Thread

    Enjoy

 

 
Page 50 of 50 FirstFirst ... 40484950

Similar Threads

  1. Timeslot Booking Event Calendar
    By escapis in forum All Other Contributions/Addons
    Replies: 2
    Last Post: 31 Jan 2014, 12:45 AM
  2. Multiple Choices error with Event Booking Calendar addon
    By FukienMan in forum All Other Contributions/Addons
    Replies: 9
    Last Post: 16 Feb 2012, 12:17 AM
  3. Help with Event Calendar add-on
    By blabay in forum All Other Contributions/Addons
    Replies: 1
    Last Post: 24 Mar 2010, 01:34 PM
  4. Event Calendar Broken - take out of download section!
    By Asmodai in forum All Other Contributions/Addons
    Replies: 3
    Last Post: 10 Nov 2007, 07:22 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg