SitePoint Sponsor

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 26 to 50 of 57
  1. #26
    I solve practical problems. bronze trophy
    Michael Morris's Avatar
    Join Date
    Jan 2008
    Location
    Knoxville TN
    Posts
    2,023
    Mentioned
    63 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by raindoll View Post
    well I'm glad I'm not your customer or the guy who has to maintain after you are gone :-)
    Actually if you actually have coding experience beyond a textbook you won't have a problem with code I write. My files have as many, often more, lines of comments than procedure. But I don't disillusion myself with the thought that this will ever matter to a client - the vast majority of them simply want the thing to work.

    Not that I expect any of the above to matter to you - you showed up to troll and troll you have. Good day.

  2. #27
    SitePoint Evangelist catweasel's Avatar
    Join Date
    Apr 2007
    Location
    Goldfields, VIC, Australia
    Posts
    518
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sheesh ... I don't think Raindoll's post warrants the nasty responses in this thread.

    The guy plainly states in the orginal post he's been guilty of every transgression on the list himself.. and that it's subjective.
    Some posters have taken the opportunity to debate the points intelligently, others have chosen to reacted defensively and inject bitterness into their post.

  3. #28
    SitePoint Wizard Hammer65's Avatar
    Join Date
    Nov 2004
    Location
    Lincoln Nebraska
    Posts
    1,161
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by catweasel View Post
    Sheesh ... I don't think Raindoll's post warrants the nasty responses in this thread.

    The guy plainly states in the orginal post he's been guilty of every transgression on the list himself.. and that it's subjective.
    Some posters have taken the opportunity to debate the points intelligently, others have chosen to reacted defensively and inject bitterness into their post.
    The point is most of them aren't even transgressions. The word "lousy" is offensive. i personally don't abide preachiness over what is proper in a creative medium such as programming. Coding guidelines are one thing, but this was far more than that. The responses to points we made about the list had the same superior air to them.

    I don't know about anybody else here, but I have been a developer for almost two decades. I don't need someone telling me that I am a lousy programmer because I don't use a debugger, don't comment my code in the right format, use the right design patterns or methodology, or anything else on the list.

  4. #29
    SitePoint Evangelist catweasel's Avatar
    Join Date
    Apr 2007
    Location
    Goldfields, VIC, Australia
    Posts
    518
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Hammer65 View Post
    The point is most of them aren't even transgressions. The word "lousy" is offensive. i personally don't abide preachiness over what is proper in a creative medium such as programming. Coding guidelines are one thing, but this was far more than that. The responses to points we made about the list had the same superior air to them.

    I don't know about anybody else here, but I have been a developer for almost two decades. I don't need someone telling me that I am a lousy programmer because I don't use a debugger, don't comment my code in the right format, use the right design patterns or methodology, or anything else on the list.
    I think you're taking it too personally Hammer, nobody seriously thinks you're a lousy developer. The guy was just trying to make a list of methodology points a little more 'spicy' and a little less beige.

    Shoot, I haven't used a debugger since uni

  5. #30
    We're from teh basements.
    Join Date
    Apr 2007
    Posts
    1,205
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Hammer65 View Post
    Some of it is also borders on purist snobbery.
    @ "borders on"

    Some of these points are deep in purist snob territory.

  6. #31
    We're from teh basements.
    Join Date
    Apr 2007
    Posts
    1,205
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Hammer65 View Post
    i personally don't abide preachiness over what is proper in a creative medium such as programming. Coding guidelines are one thing, but this was far more than that. The responses to points we made about the list had the same superior air to them.
    Agreed. That's what turns me off about this board to the point that I stay away for months at a time. The continual one-upmanship and ego stroking on the part of a few ubergeeks who shall not be named is really obnoxious when you consider that PHP is intended for the masses and not for rocket scientists.

  7. #32
    SitePoint Addict
    Join Date
    Jul 2006
    Posts
    200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    good programmer

    Good programmer codes like the old dbase 3+.
    Bad programmer uses that OOP thing-ma-jig.
    I am yet to see how OOP is good for anything except a simple flat file database. The second something gets complex, like a complex ajax lookup, suddenly I see php and html in the same file. I have spent over 6 months looking at all types of OOP examples, and still don't see a single example of how something complex can be done with OOP without escaping php with html, or using echos to output html. Every book I looked at does this when things get complex. Why then do OOP prophets preach seperation of display code from php/server code? In real life, OOP is fine for the simplest flat file database, but add some complex requirement, and suddenly OOP doesn't do the job. I can however acomplish complex stuff using smarty.

  8. #33
    SitePoint Enthusiast
    Join Date
    Feb 2008
    Posts
    83
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jim9 View Post
    In real life, OOP is fine for the simplest flat file database, but add some complex requirement, and suddenly OOP doesn't do the job. I can however acomplish complex stuff using smarty.
    Hmm... would this be a bad time to point out the Smarty is, in fact, a class? And therefore a form a of object-oriented programming?

    OOP can be very useful in both small and large apps. Some simple things could be done more easily within a procedural function, but when you start stringing functions together - it just makes sense to organize them into logical objects with methods and properties.

    And there's nothing wrong with Smarty. I like it. But it's definitely not an example of creating a PHP app without OOP.

    - Walkere

  9. #34
    SitePoint Wizard wonshikee's Avatar
    Join Date
    Jan 2007
    Posts
    1,223
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jim9 View Post
    Good programmer codes like the old dbase 3+.
    Bad programmer uses that OOP thing-ma-jig.
    I am yet to see how OOP is good for anything except a simple flat file database. The second something gets complex, like a complex ajax lookup, suddenly I see php and html in the same file. I have spent over 6 months looking at all types of OOP examples, and still don't see a single example of how something complex can be done with OOP without escaping php with html, or using echos to output html. Every book I looked at does this when things get complex. Why then do OOP prophets preach seperation of display code from php/server code? In real life, OOP is fine for the simplest flat file database, but add some complex requirement, and suddenly OOP doesn't do the job. I can however acomplish complex stuff using smarty.
    It seems you confuse the concept of MVC and OOP, they are not the same thing. MVC deals with concepts of separation of presentaton and logic (with about as varied interpretation as there are different food types in the world), and OOP is a programming style. Any project can be accomplished in both procedural or object oriented - it is merely a preference. Each with advantages and disadvantages but to say oop isn't good for anything except 1 thing tells me you really don't understand it.

  10. #35
    Theoretical Physics Student bronze trophy Jake Arkinstall's Avatar
    Join Date
    May 2006
    Location
    Lancaster University, UK
    Posts
    7,062
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    In real life, OOP is fine for the simplest flat file database, but add some complex requirement, and suddenly OOP doesn't do the job.
    If you honestly beleive that, you haven't experienced the full OOP experience.

    As for returning data, this is basically what the points should be interpretted as:
    • In a function, you shouldn't return the data in HTML format unless the function's job is to turn something into HTML. For example, if you want to return $this->age, you wouldn't return it as <b>$this->age</b> you should add the HTML later, outside of the function. For example:
      PHP Code:
      <?php
      //what not to do.
      function sayHello(){
          return 
      "<b>Hello</b>";
      }
      echo 
      sayHello();

      //what to do.
      function sayHello(){
          return 
      "Hello";
      }
      echo 
      "<b>".sayHello()."</b>";
      ?>
    • A function shouldn't output data, only return it. This is because you may later need to grab the return data and handle it in some way. If you want it to output, echo the return of the function. For example:
      PHP Code:
      <?php
      //What not to do:
      function sayHello(){
          echo 
      "Hello";
      }
      sayHello();
      //What to do:

      function sayHello(){
          return 
      "Hello";
      }
      echo 
      sayHello();
      ?>
    Jake Arkinstall
    "Sometimes you don't need to reinvent the wheel;
    Sometimes its enough to make that wheel more rounded"-Molona

  11. #36
    SitePoint Wizard Hammer65's Avatar
    Join Date
    Nov 2004
    Location
    Lincoln Nebraska
    Posts
    1,161
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by arkinstall View Post
    If you honestly beleive that, you haven't experienced the full OOP experience.
    Agreed. any objections to the OP's list should not be construed as anti OOP. That was not the nature of the argument.

    In a function, you shouldn't return the data in HTML format unless the function's job is to turn something into HTML. For example, if you want to return $this->age, you wouldn't return it as <b>$this->age</b> you should add the HTML later, outside of the function. For example:
    Not necessarily. I agree that a class method shouldn't echo anything, at least not as the only way to get the data, but if the role of your class is to auto-generate markup, (form generator, wrapper for Javascript library that needs markup for menus etc., generation of pagination links), then there is nothing wrong with returning HTML any more than it's wrong to return CSV, PDF or any other formatted data, if that is the role of the class.
    Visit my blog
    PHP && Life
    for technology articles and musings.

  12. #37
    SitePoint Addict
    Join Date
    Jul 2006
    Posts
    200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    response to wonshikee

    It's not that I don't understand it, but please give me one example of how it can really be used in complex database access. 1. Say for example I have an edit form. 2. Now I come to the customer field. 3. I want to have a button to click which opens another page with a search for customer. 4. After finding this customer in this table, have a button or link button at right that says select, or whatever, in other words this is the customer you are choosing to fill fields in the parent form. 5. After hitting this button with mouse, that page closes and the customer id, name, address, phone, etc., are filled in on the parent form. 6. And if you need to over-ride the address or something you can. For example, this customer might be visiting aunt maebell, and needs an order shipped to him at her house for this order only.
    Now with this stated, I would understand OOP if I saw one complete example that accomplished something like the above. To date I am yet to see one concise concrete example of a complex type lookup operation. I do this now by throwing some javascript on my page that fills in the fields after I select them from a lookup. I just don't see any way of having OOP alone do complex stuff without having some HTML code on the same page. Yes you can print results to screen, but how do you put results in an html table using OOP all by itself??? In fact, it is now 3 pm central time, by 4 or 5 pm I will try to post a quick example lookup that I accomplish using regular php mixed with html. If I could duplicate what it does in OOP, then all would be understood.
    Last edited by jim9; Feb 10, 2008 at 15:00. Reason: spell

  13. #38
    . shoooo... silver trophy logic_earth's Avatar
    Join Date
    Oct 2005
    Location
    CA
    Posts
    9,013
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    jim9...please learn how to use the enter key...Its really difficult to read your post.
    Logic without the fatal effects.
    All code snippets are licensed under WTFPL.


  14. #39
    Theoretical Physics Student bronze trophy Jake Arkinstall's Avatar
    Join Date
    May 2006
    Location
    Lancaster University, UK
    Posts
    7,062
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Not only that but its completely inaccurate.

    OOP doesn't do wonders like you suggested. It is a better way of controlling code, and handling data.
    Jake Arkinstall
    "Sometimes you don't need to reinvent the wheel;
    Sometimes its enough to make that wheel more rounded"-Molona

  15. #40
    SitePoint Addict
    Join Date
    Jul 2006
    Posts
    200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    example I said I'd post

    http://jimdiane.byethost9.com/petsp/pets_list.php

    Hit show all.
    The fist pet, named ANOTHER PET, hit edit.
    Towards middle hit lookup owner.
    To left of blackburn hit select.
    Hit save
    Hit return to list.

    Now please please please quit talking about how good OOP is, and give a real complete example of doing this type of thing using OOP. Short code fragments don't teach they confuse. "Complete" working example with all necessary code including any php, html, css, javascript, etc.

    I did not lie, I posted a short example lookup as I said I would.

  16. #41
    SitePoint Wizard wonshikee's Avatar
    Join Date
    Jan 2007
    Posts
    1,223
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    "Complete" working example with all necessary code including any php, html, css, javascript, etc.
    You're right, OOP is crap. Don't use OOP, let those other "ignorant" programmers use it and ignore them - they know nothing you don't know. They'll never learn that real programmers use old dbase 3+ stuff. Just continue to do what you've been doing and let the other's use that complex thinga-ma-jig. All is well.

  17. #42
    SitePoint Evangelist catweasel's Avatar
    Join Date
    Apr 2007
    Location
    Goldfields, VIC, Australia
    Posts
    518
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jim9 View Post
    "Complete" working example with all necessary code including any php, html, css, javascript, etc.
    Sounds like you want someone to develop the entire app for you. Is this a paying job?


    What you're doing is basically called 'scaffolding' .. the bog standard 'create, read, update, delete' functions typical for maintaining records like this.
    If you're doing it all in procedural code then good for you.

    You could develop this app fairly quickly using something like cake which has a fairly good scaffolding class capable of doing table joins and associations like you want. Other frameworks like CodeIgniter provide only a very basic scaffold which doesn't accomodate associations but I notice on the CI forums some folks have extended the class to provide more complex functionality.

    If you're interested in using a little bit of OOP one of the first candidates would be your database access wrapper.

  18. #43
    Employed Again Viflux's Avatar
    Join Date
    May 2003
    Location
    London, On.
    Posts
    1,127
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Jim, I think you're confusing OOP with MVC (and/or other patterns). There's nothing about OOP that says you can't mix your HTML in with your PHP.

    If you couldn't use OOP to do "complex" web stuff, then there'd be a lot less ASP.NET and Java developers out there.

  19. #44
    Theoretical Physics Student bronze trophy Jake Arkinstall's Avatar
    Join Date
    May 2006
    Location
    Lancaster University, UK
    Posts
    7,062
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    And PHP, for that matter.

    Jim9, seriously you have no idea what OOP is, do you? It is just normal PHP, it doesn't add handlers to buttons, control whats happening outside the server. It is simply a much better (in my opinion) way of programming.

    If you think OOP does all that, you should look into ASP.NET. That's how OOP is used to communicate with the client and server.
    Jake Arkinstall
    "Sometimes you don't need to reinvent the wheel;
    Sometimes its enough to make that wheel more rounded"-Molona

  20. #45
    SitePoint Addict
    Join Date
    Jul 2006
    Posts
    200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    cake and oop reply

    I have used cake just to get a feel of it. Fine for flat file databasing or simple parent child tables. I am not trying to argue about OOP or MVC. I am just stating that I am yet to see anything real complex done with these except simple databasing. Even an online store or auction like ebay is simple programming.

    Complex lookups are the hardest task to achieve in a database. Whereas, ebay has a search, then you are presented with a list of items. Very basic parent/child table structure. A simple link by catagory id would accomplish this.

    Bear in mind, what used to be desktop applications are migrating to the web, therefore, not all web databases are simple web stores, rather complex forms where numerous table lookups need to be accomplished.

    Look at my example given in the earlier post. Now imagine that is a form with carrier, shipper, cosignee, bill to, etc., on it and each needs to be looked up and fields like address, phone, contact, fax, etc autofilled. Many applications written in foxpro, clipper, c, vbasic had to do these task. Now many customers want to migrate something like this to a web database, but retain the ease of filling in a load form.

    My little example isn't a real database, but a test database for looking up.

    Now my point. I have all but begged on these forums for a complete example, but to date, there isn't a sound example to be found on the web, or in books I have looked at. I have tryed several frameworks, but not a one can do a complex lookup. You have to use javascript or ajax to help with a lookup it seems.

    Please, before replying, at least give me the benefit of the doubt, look at my example, lookup an owner, and tell me how to do this in OOP or MVC without mixing some code on the same page.

    Just remember if it has to be mixed, it's not OOP or MVC anymore, it's regular programming.

    I would love to learn OOP, but to learn, I need an example (complete).

    To put it another way, quit saying how good ice cream is without letting me see and taste it. When I first learned dbase there were books you could buy with examples of complete parts ordering systems in them. Where are the "complete" php oop books. Yea, they show basic concepts, but not a complete database application like Fedex would use. Complex business shipping and receiving stuff.

  21. #46
    SitePoint Evangelist catweasel's Avatar
    Join Date
    Apr 2007
    Location
    Goldfields, VIC, Australia
    Posts
    518
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jim9 View Post
    Where are the "complete" php oop books. Yea, they show basic concepts, but not a complete database application like Fedex would use.
    Such a thing would not be a book... such a thing would be an enormous repository of code and would cost you several hundred thousand dollars to buy.

  22. #47
    . shoooo... silver trophy logic_earth's Avatar
    Join Date
    Oct 2005
    Location
    CA
    Posts
    9,013
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    You just don't understand what Object-Oriented Programming (OOP) is about. Its not some new language or some magic system. What it is is a methodology of designing and building applications by using the idea of objects instead of functions.

    Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs.
    For example you have a house and a house as specific attributes all of which can be represented in an object.
    PHP Code:
    $h33898 = new House'33898 Someroad st' ); 
    Now that house has residents and pets.
    PHP Code:
    $bob  = new Person'Bob''Frank' );
    $mary = new Person'Mary''Frank' );
    $max  = new Pet'Max' ); 
    If Bob and Mary are not homeless then they must have some kind of house right?

    PHP Code:
    $h33898->addResidences$bob$mary$max ); 
    I'm keeping things simple here but what OOP is about is doing things in a way how one in the real world works with objects.

    More information can be found here:
    http://en.wikipedia.org/wiki/Object_oriented
    Logic without the fatal effects.
    All code snippets are licensed under WTFPL.


  23. #48
    SitePoint Wizard Hammer65's Avatar
    Join Date
    Nov 2004
    Location
    Lincoln Nebraska
    Posts
    1,161
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    OOP breaks up parts of a task into objects. Each object does a very specific thing. One of the most widely used class systems, is a database abstraction layer. That along with a controller class and few assorted others would be the foundation for a project like that.

    Some of what you describe is done on the client side. Javascript, isn't currently an OOP language in the same way that Java is but it still uses object, properties and methods. If you have been doing any serious Javascript, you have already been using objects. Version 2.x of Javascript will be fully object oriented, so get used to it.

    There are a number of ways to do what you are talking about with OOP. Look at some of the tutorials for Code igniter or one of the other PHP based MVC frameworks.

    If someone hasn't written a tutorial to do EXACTLY what you describe, it's only because what you are asking about is highly specific. It has nothing to do with whether or not it can be achieved with OOP. You do realize that major desktop and network based applications are done with one language or another that is considered a fully object oriented language. These include highly complex applications. If you don't see the advantages, it's only that you don't have the experience yet to understand it fully.
    Visit my blog
    PHP && Life
    for technology articles and musings.

  24. #49
    SitePoint Addict
    Join Date
    Jul 2006
    Posts
    200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    code cost and example

    It's funny that there are hundreds of examples for free of using php and mysql regular programming out there that demonstrate database access, and even get into complex techniques.

    But you are saying a real life example of OOP would cost hundreds of thousands of dollars.

    So you agree that it can't be done , and the cost must be the years of work to try to achieve what I can code in just a few pages using regular php coding and some javascript.

    The house example is what. How about show how to do an invoice, lets's say that sally is a regular customer, and buys a new appliance.
    Show me how to auto fill her address, phone, and other related fields on a shipping/delivery order using OOP. Now that would be a good example.

    Folks, just tell the truth, you do not know how to accomplish a complex order entry form using OOP do you.

    In fact, if you pay me $5000.00 per lesson I will show you how to do some complex databasing using php, html, css, and javascript.

    But the fact is I keep asking for a real database example, but no one can come up with one. I'd be happy to see just a small example of accomplishing a lookup using an OOP technique.

    Of course more than one field has to be autofilled (like my example) to be complex, and the person to lookup has to be searchable. Wouldn't be good to have a table with 5000000 records all loading when you want to search the last name of smith, or all last names starting with smi.

    Yes, I can and do accomplish all this neat stuff now. I'd just like to learn some OOP. There has got to be an example somewhere of a real world complex database using OOP.

  25. #50
    SitePoint Evangelist catweasel's Avatar
    Join Date
    Apr 2007
    Location
    Goldfields, VIC, Australia
    Posts
    518
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jim9 View Post
    It's funny that there are hundreds of examples for free of using php and mysql regular programming out there that demonstrate database access, and even get into complex techniques.

    But you are saying a real life example of OOP would cost hundreds of thousands of dollars.
    Show me one single example of a logistics application of a scale that "Fed Ex would use" coded in procedural style.. just one.

    My partner is a senior staff member at a major university, recently she was in on tender assesments for an entire new student administration software system. The winner was one of the world's largest software companies, the delivery date is 18 months away, the cost is 2.5 million dollars.

    Fed Ex would easily be in that category. You are completely deluding yourself if you think that someone is going to develop such a large scale app just to prove to you that OOP really does work.

    So you agree that it can't be done , and the cost must be the years of work to try to achieve what I can code in just a few pages using regular php coding and some javascript.
    You really are deluding yourself.. go ahead, code me up a logistics app using nothing but procedural style coding.. then change the database from mysql to postgre and tell me how many files you had to edit.

    The house example is what. How about show how to do an invoice, lets's say that sally is a regular customer, and buys a new appliance.
    Show me how to auto fill her address, phone, and other related fields on a shipping/delivery order using OOP. Now that would be a good example.
    download bamboo invoice


    Folks, just tell the truth, you do not know how to accomplish a complex order entry form using OOP do you.
    we do it all the time.. and normally we charge money for it.

    In fact, if you pay me $5000.00 per lesson I will show you how to do some complex databasing using php, html, css, and javascript.
    If you pay me $5000.00 I'll develop your pets and owners application using OOP for you. I take 10% down as deposit.

    But the fact is I keep asking for a real database example, but no one can come up with one. I'd be happy to see just a small example of accomplishing a lookup using an OOP technique.

    Of course more than one field has to be autofilled (like my example) to be complex, and the person to lookup has to be searchable. Wouldn't be good to have a table with 5000000 records all loading when you want to search the last name of smith, or all last names starting with smi.

    Yes, I can and do accomplish all this neat stuff now. I'd just like to learn some OOP. There has got to be an example somewhere of a real world complex database using OOP.
    I referred you to cake before.. evidently I need to give you more specific references to the cake manual -

    I draw your attention to this section...

    One important thing to note about scaffold: it expects that any field name that ends with _id is a foreign key to a table which has a name that precedes the underscore. So, for example, if you have nested categories, you'd probably have a column called category_id in your categories table.

    Also, when you have a foreign key in a table (e.g. titles table has category_id), and you have associated your models appropriately (see Understanding Associations, 6.2), a select box will be automatically populated with the rows from the foreign table (titles) in the show/edit/new views. To set which field in the foreign table is shown, set the $displayField variable in the foreign model.


    We keep giving you examples of what OOP is about.. you appear fixated on a single task (scaffolding) and claim it cannot be done using OOP.

    OOP is not for every project, simple projects that do not require scalability, portability or code re-usability can and often are accomplished using procedural. But if you want a robust application that is easier to maintain.. easier to scale up if required and easier to port then you are going to do it using OOP techniques.


Bookmarks

Posting Permissions

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