1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Developing add-ons as a beginner possible?

Discussion in 'XenForo Development Discussions' started by sbj, Oct 15, 2014.

  1. sbj

    sbj Well-Known Member


    I am at some point which I tried to avoid. Sadly, there is one thing that I need for my forum. It is really necessary and essential. That means I need custom developing, an add-on.
    From 1 to 10, I would say it has a workload of 4-7. So, I asked all the awesome developers here but people have no time. I understand that and it is how it is.

    So I was asking myself if I should start doing this on my own. And here it comes. I can't estimate if I could do this, so I am asking you.

    I have basic knowledge in c++ (loops, functions, classes with methods). Maybe these are not the correct expressions but I hope you understand those key words.

    So no knowledge in php or other languages, not even html skills. I never programmed sth in my life except the homeworks I had to do for my uni for 2 semesters. I was very good at what I did. Ok, now I forgot many things but with some time I could relearn it. But this was c++...

    When I look at the codes people post here, I am able to understand them a bit. The structure is very familiar to c++. But all the method names and php syntax is confusing me. Also the higher level of coding.
    I don't have any knowledge how to build an add-on. Where do the people get all the correct function names, like getName() or replaceObject() or such things? I dont know how to start, where to start, how to structure it and so on.

    Shallow answers like "everybody can learn anything" or "everything is possible" are not very helpful. Can you be concret and tell me if I can learn how to build an add-on and which skills I need?
    What do you think of my project? Be honest and direct, please, I appreciate it.


  2. rainmotorsports

    rainmotorsports Well-Known Member

    If you can read C syntax and have a basic understanding of programming in any language PHP isn't that hard to grasp. I am a pascal coder who studied C++ for probably 30 days. Enough to be able to transcode libraries into pascal.

    When your looking for a php function chances are you know what you want to do and what your looking up. Xenforo and Zend functions being a different story. With my learning style one of the easiest ways is to look at some of the free plugins. Especially if they do something similar to what you want to learn.

    One of the first things that threw me for a loop was model view controller. Looking at an existing plugin it became very apparent the class names were directories and files. Same for many function calls. So if something is extending or calling a function from Xenforo_Controller_Abstract then u know the code is in /library/Xenforo/Controller/Abstract.php

    While a lot of the MVC structure isn't needed it keeps the code organized and factored into a reusable fashion. Database query code goes into the model. Controllers do the heavy lifting and views prepare the result to be passed to the template.
    sbj likes this.
  3. sbj

    sbj Well-Known Member

    Well the basic stuff I know. It is the same in c++. For example on the left of this page, I know and understand all the stuff of "PHP tutorial" and "PHP Forms". I also understand all the other stuff in that menu. But I never worked with php or such things. So my memory has nothing in it, so I have to look up everything (syntax and built-in functions). But as I said, I understand those written stuff.

    1. So, my question is, what else do I need to know to be able to create an add-on? What else do I need to know for coding?
    2. Before I can start coding, I need to understand the system. From the first steps to the whole system. Can someone explain me how xenforo is structured?
    Last edited: Oct 16, 2014
  4. sbj

    sbj Well-Known Member

  5. Nobita.Kun

    Nobita.Kun Well-Known Member

  6. sbj

    sbj Well-Known Member

  7. TheBigK

    TheBigK Well-Known Member

    I'm in the same boat as you are. The tutorials by furrman are quite nice; but they could be a little confusing if you aren't familiar with SQL and how things work in XF. Prepare for a long learning curve and get started.
    sbj likes this.
  8. sbj

    sbj Well-Known Member

    How far are you on your way?

    I have no coding experience. From what I see, I have the mental capacity to understand how to develop an add-on. But I need a beginner's tutorial for the concept of developing.

    I don't talk about the coding itself, like syntax and logic. I don't get how all the system is connected with each other and what kind of things I must change and where I must change to finish an add-on.
    This means I am stuck at the first part, the second part is the coding/content itself.

    But nobody is willing to provide answers for noobs it seems. Because those things are trivial and common for developers.
    Last edited: Oct 17, 2014
  9. Brogan

    Brogan XenForo Moderator Staff Member

    I've been lucky in that I have had one of the best teachers anyone could hope to have, in @Chris D.

    I still don't know 10% of what he does but I can at least write code now without asking him the most basic of stuff and occasionally it even works.

    The problem with your question is it is too broad.
    You're effectively asking people to teach you how to develop.

    My suggestion is to come up with a concept/idea of an add-on you want to develop and then people will be better able to help and advise.
    Amaury, sbj and Chris D like this.
  10. sbj

    sbj Well-Known Member

    I thought exactly the same other around. I thought, if I come with my concept and ask for help, then people would think I am letting them do for me my work.
    So I didn't come with my concept because I didn't want to bother people.

    Instead of this I wanted to know in general how to build an add-on so I don't rely on you and bother you guys. But if you say I should come with my concept, no problem, I'd do it.

    I have already presented my idea and asked for help but got no response (also I asked you Brogan in private, if you remember. You told me that the money I offer is just the cash for 1 hour of work. I totally understand you so I thought then I do it on my own).

    Basically I want to add dropdown menus. So, do you suggest I should re-try and open a new thread? But still I don't have a clue about listeners, template modifications and so on. I see people extending built-in things but nobody explains where they find the right thing to extend. There are so many things I don't get. I don't understand how this all things are connected with each other.

    Thanks for answering by the way, I appreciate it.

    I know that @Chris D is awesome. He was the 2nd person I asked in private for help (I had earlier a discussion with @AndyB, so I asked him first because he is also a great person).
    But Chris told me that he has no time so I didn't want to disturb him anymore. I don't think that he has the time or the mood to explain me basic stuff. So I opened this thread. But nobody wants to share his knowledge. Time is valuable, I know.

    I must figure this out. My only option at the moment.

    Sadly Xenforo's forum system is not good for building a library. Here I found out that having many forums will cause performance problems. I can't create thousands of forums. The software is not build for this.
    So what is the solution? Instead of this I must put everything in 1 single forum, like all the thousands things which should have their own sections. So this will get messy and nobody ever will use such a forum.
    That is why I need this add-on which gives the ability to list all the threads you want in 1 forum. Like tagging but with the ability to have thousands of prefixes without getting messy.
  11. Brogan

    Brogan XenForo Moderator Staff Member

    Regarding development costs, I had an interesting discussion with someone earlier.

    It really depends on the add-on, the amount of work and where the developer lives.
    Some developers live in countries which allows them to charge $5 per hour.
    I live in the UK (London) so the equivalent is more like $50 per hour, once the cost of living is taken into account.

    If I was to charge the equivalent of what I used to get paid 10-15 years ago when I was contracting then it would be several multiples of that, per hour. Yes, really.

    In most cases, developers here are underpaid for their time and skill which is why the better developers tend to gravitate towards the higher paying customers (those who run very large, profitable sites).
    sbj likes this.
  12. sbj

    sbj Well-Known Member

    I assume @xfrocks lives in Vietnam, so this would be a place. Also he has an add-on called XenTag which is like 40% of the add-on of what I think of. I also asked him. No response.

    Yeah, I understand that. I don't complain about this. People want to make money and they go for profit like everyone do. So, what should I do? I am at a point to do this on my own but I need help.

    Have mercy with me guys :). I am a student. I want to open a non-commercial forum for intellectual people (I had this project for many years now and finally I want to do this). So no ads, no google money or any other things to earn money.

    So, what do you say? Should I start again and then go step by step forward?
  13. thedude

    thedude Well-Known Member


    If you're serious then get a php IDE (I use phpstorm), install xenforo locally on your computer, and start running XF through the IDE's debugger and step through parts of the code so you see how XF ticks.

    Then download some simple addons, open up their .xml files to see how they integrate into XF (code listeners, templates, template modifications, phrases, etc).

    It'll be to your benefit to learn all this, but it'll be easier to pay one of the devs to build your addon if you don't have the time to learn everything.
    LPH and sbj like this.
  14. sbj

    sbj Well-Known Member

    This is the part I want to know. Can't you people tell me how it works or ticks?

    Not because I am lazy, because I have not the experience to understand it. It is like putting me somewhere in far East Asia and telling me that I should start understand people (like Japanese, Chinese, Korean, etc.). You basically tell me that I should keep listening to people talking and read newspapers (like I should go through php codes).
    But you can't learn a language like this. You need an introduction of the concept of the language. First of all you must learn the alphabet (I have that, I know basic php and keywords). The next step is how the language is built. Like grammar and the thought behind the system. And here is my problem. I need an introduction how XF ticks at all. I really don't know what a listener is. I really don't know how you tell xenforo that it understands you. So which things I must have in mind and change so xenforo understands me?
  15. TheBigK

    TheBigK Well-Known Member

    ...and Mike and Kier for harder problems, yeah?

    I know the basics of PHP can read and comprehend 80% of the code of most of the add-ons. I've began developing a very easy add-on just to understand how things work. It's painful because you don't have help available when you need it and no easy way to know 'WHY' to any approach adopted by the add-on developer. It's hard to get started but I think should be easy once things get rolling.

    I've bought PHPStorm too and taking my own time being comfortable with it.

    I don't need anyone to teach me how to develop. I just need someone to help me when I'm stuck ( Example: https://xenforo.com/community/threa...-move-threads-with-options.28173/#post-820011 ) .

    I guess we'll have to accept the things just the way they are. No point in making excuses. If my site needs me to learn PHP and XF, I gotta do it no matter what. :)
    thedude likes this.
  16. Brogan

    Brogan XenForo Moderator Staff Member

    I think it's fairly obvious from Chris' work that he's more than capable of dealing with "harder problems".
  17. Chris D

    Chris D XenForo Developer Staff Member

    And what exactly are you implying by that?

    So, basically, you're in a crap mood due to a lack of help? Exactly how much help do you expect to receive when you post in a nearly 3 year old thread, which only has a post by one other person other than the thread starter who hasn't been very active recently?

    I'd recommend you post in the designated forum if you require support with developing:

    By the way, you've done that on three previous occasions and people have taken the time to reply to you. If you're this ungrateful about not getting help when you're stuck then I definitely think people will think twice before helping you in the future.

    Alternatively, post in the correct location and you may get all the help you need; just like many hundreds of people have before you... and even yourself:

  18. TheBigK

    TheBigK Well-Known Member

    @ChrisD - I am not implying anything. You've helped me a lot in the past and I appreciate it. I've always respected you as a developer and you know it. You might be awesome with PHP and that's a good thing for XF community. I personally think KM are more capable than you are to solve XF development related problems. I do not question your knowledge of PHP.

    I think it's obvious that I should post my doubt, which was very specific to the tutorial in the tutorial discussion thread itself.

    PS: I'm out of this thread. Happy developing, everyone!

Share This Page