Function DB Version 2.0...

Started by Oldiesmann, May 08, 2008, 12:18:05 AM

Previous topic - Next topic

Oldiesmann

Sometime last year (or possibly even in 2006), I started thinking about improvements to the function DB, and noticed one major issue: due to the way the data was stored, we had to add an entire new function entry if a function was moved or changed in some way (additional functionality, new parameters, etc.). This meant that the function ID would also change in these situations, making it harder to track changes to functions between SMF versions.

I decided to rewrite the function db to address this problem, and addressed a few other (smaller) issues while I was at it. Due to the changes, I had to manually copy over all the function info from the existing function db to a new one which was being worked on in a non-public area of the site. I got busy and didn't have a lot of time to work on this, so it took a lot longer than I had originally planned, but I am pleased to report that the new version is up.

At first you won't notice many changes, as things should still look the same. However, there have been numerous changes:


  • Function ID remains the same no matter what changes are made to a function (except of course if it's renamed)
  • SMF version dropdown list only shows versions that the file/function you're viewing exists in
  • Ability to switch SMF versions while viewing a file/function without being redirected to the main index
  • If documented, $context variables loaded by a function are shown on the function details page (most functions don't have any $context variables documented yet - see Admin() for an example
  • Ability to specify an SMF version in the URL to view a function or file for that version of SMF (example: .../index.php?action=view_file;id=x;smf_version=1.1.5)
  • Ability to view all versions of a function, so you can see the changes that have been made in the development process (page isn't real pretty at the moment, but I'll work on that as I have time)
  • All CSS has been moved to an external stylesheet, allowing your browser to cache it

All existing SMF functions (eg all the ones that were already in the function db) have been updated, so details exist for 2.0 as well. In addition, some functions that were added in 2.0 have already been documented (these are mainly ones that we documented from early alpha versions of 2.0).

What's to come? At this point we will be focusing mainly on documenting new functions from SMF 2.0. My goal is to have as many 2.0 functions documented as possible by the time the final version is released later this year.

I hope these changes make the function db more useful. Let me know if you run into any problems :)
Michael Eshom
Christian Metal Fans

[SiNaN]

Awesome. Thanks for your effort. ;)
Former SMF Core Developer | My Mods | SimplePortal

bassbass


Roph

Wow, I was honestly about to post a few suggestions regarding the function DB, and here you make a post implementing what I was after (comparison, switching version and staying put and extra 2.0 info) :D

THANKYOU :D

deadnewton

well i am programmingly challenged...(but good in math :) )so pardon me....
I am running 1.1.5...should I do something with this or just sit tight for v2
How many dimples are there in a golf ball?
Running SMF 1.1.4 + TP 0.9.8.
When is SMF2 gonna be out?

Dragooon

I think you misunderstood what function db is.

Function DB(Located here) is a database containing all the functions which are used in SMF. So this announcement is to announce the implementation of Function DB Version 2.0, it is not a SMF release.

BTW, Great release!

Dannii

You know what would be great? Being able to specify the function in the URL instead of using an ID. Any chance that's possible?
"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."

deadnewton

Quote from: Dragooon on May 08, 2008, 07:21:36 AM
I think you misunderstood what function db is.

Function DB(Located here) is a database containing all the functions which are used in SMF. So this announcement is to announce the implementation of Function DB Version 2.0, it is not a SMF release.

BTW, Great release!

Great.. Now i got it...i did not have that link with me when I posted and was thoroughly confused and thought that i need to update the functions to get....something amazing...;)
very well documented.. i should incorporate this style into my dissertation work...!
How many dimples are there in a golf ball?
Running SMF 1.1.4 + TP 0.9.8.
When is SMF2 gonna be out?

Oldiesmann

Quote from: Dannii on May 08, 2008, 07:30:11 AM
You know what would be great? Being able to specify the function in the URL instead of using an ID. Any chance that's possible?

Not possible at the moment, but that won't be too hard to implement. I'll make the changes in a little while.
Michael Eshom
Christian Metal Fans

boranjudge


karlbenson

I'd like to see some examples of each function being used.

If I'm honest. I read/understand the examples on the PHP website more than their techno-babble about the function.

metallica48423

its been suggested -- coming up with a way to implement it is another question.  Of course, we first need to actually finish the function entries and get things updated for 2.0
Justin O'Leary
Ex-Project Manager
Ex-Lead Support Specialist

QuoteMicrosoft wants us to "Imagine life without walls"...
I say, "If there are no walls, who needs Windows?"


Useful Links:
Online Manual!
How to Help us Help you
Search
Settings Repair Tool

aldo

Quote from: Oldiesmann on May 08, 2008, 11:03:59 AM
Quote from: Dannii on May 08, 2008, 07:30:11 AM
You know what would be great? Being able to specify the function in the URL instead of using an ID. Any chance that's possible?

Not possible at the moment, but that won't be too hard to implement. I'll make the changes in a little while.
That'd be cool, kind of like PHP's site, like www.php.net/FUNCTION :D
Great job though ;)

SleePy

Well the examples isn't a bad idea, though I think the best way to do them would be from actual SMF source code like I did for the 2.0 Functions for mod authors. Seeing the actual code in use is very handy I know.
I read the tech blab to make sure I am casting things as I should and using it correctly, I also use the examples for when I don't feel like reading the tech blab and just need to make sure I am passing the correct variables to a function.
Jeremy D ~ Site Team / SMF Developer ~ GitHub Profile ~ Join us on IRC @ Libera.chat/#smf ~ Support the SMF Support team!

TeenDev

im sure this will make things a lot less confusing

Minare

Having no knowledge in programming or smf function db but being curious about what those changes will earn us, I request someone to tell me what those function db changes will make use of, just simply..

Examp : Forums will be faster blah blah...

Sorry  :D

Kindred

What?

Minare.... the function database has nothing at all to do with your site. It is a list of the functions used by SMF files...   specifically for those who want to build mods, bridges and implement other things using SMF functions.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Minare

Hımm, I thought different, Sorry.

Thank u Kindred ;)

vagrant

Thanks for all the hard work Oldiesmann.

Wow you must be one BIG dedicated person.

vagrant

Oldiesmann

You're welcome :)

I actually enjoy going through SMF and documenting all the functions... That's how I find easter eggs :P
Michael Eshom
Christian Metal Fans

diffy

Great! You'll probably be finished around the time Duke Nukem Forever comes out

_Anthony_


illustrationism

Very nice. This will come in useful, I'm sure.

vladimir - sv

There's a PHP warning in this link:

http://support.simplemachines.org/function_db/index.php?action=view_function;id=151;sa=viewall

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/simple/public_html/support/function_db/index.php on line 545

Oldiesmann

Thanks for the report. For some reason that warning doesn't show up in Firefox, but I found and fixed the issue.
Michael Eshom
Christian Metal Fans


ascaland

STICKY THIS MOTHER

Lol, anyways, I never used the Function DB so hopefully I can get into how it works and make it useful to me.

Oldiesmann

Yeah, a lot of people don't even know it exists for some reason, but it's been there for ages. Not sure what I can do to better promote it :)
Michael Eshom
Christian Metal Fans

HecKel

One new section for 3rd Party Developers in the Docs :)

I know you already have documentation for that but would be great if you create one section with documentation more in detail, explaining everything on the Developers view, how works the global variables, functions, themes, etc.

I am sure that would be a HARD work, but I am totally sure that would worth it :)
Quote from: Eliana Tamerin on August 23, 2008, 04:10:10 PM
SMF 7 is where it gets good. That has time travel. You can go back and post before the guy who flamed you. :P

aldo

Quote from: Oldiesmann on November 11, 2008, 02:06:20 PM
Yeah, a lot of people don't even know it exists for some reason, but it's been there for ages. Not sure what I can do to better promote it :)
Add it to the menu at the top, or on the Mods page? :P

Oldiesmann

I'll look into adding it to the top. I guess a lot of people don't look at the "support" section much :P
Michael Eshom
Christian Metal Fans

marissaturner

THE CONTAINED INFORMTION IS VERY USEFUL. I WAS IN NEED OF IT.


Forbs


necrit

will you be working to create a "RollUp" function within differing versions?  Basically if RC2 introduced a new function that was NOT updated for RC3 it doesnt show up on the function db for that version. What if there was minimum version ranges set for the filter for example when viewing RC3 it shows first any version specific functions of RC3 THEN shows all the proceeding functions from everything in the 2.0 line?

Arantor

Given that half the 2.0 stuff hasn't been properly documented, heck even stuff that hasn't changed between 1.1.9 and 1.1.11 (which is months old) hasn't been properly updated... I think the answer is basically no.

Norv

necrit: I agree, and I think I have already meant to propose or already proposed something along these lines... I will make sure it gets to the teamies responsible with it, in any case. :)

ETA: ah, except the teamie in question is Oldies which already has it now on his unread replies. :)
Anyway, one more vote from me, if I may, for a possibility to filter on "since".
To-do lists are for deferral. The more things you write down the later they're done... until you have 100s of lists of things you don't do.

File a security report | Developers' Blog | Bug Tracker


Also known as Norv on D* | Norv N. on G+ | Norv on Github

Kindred

I do not think we will get a "since" line in before the final release of 2.0.

We are looking at some documentation automation and revising the "notes" in the source files which will make this easier in the future, but currently, stuff like "since" would all have to be handled manually, and there are more important things to be done before that.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Nictoria

Awesome. Thanks for your effort

texwillerx

Is there a function for inserting data (topics, etc) into a forum. I need such a function, since I want to create a forum from an existing data wich resides in a database.

Thanks

Kindred

Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Advertisement: