vs.hive // VOID-STAR.NET

100% cheshire.

vs.hive

So a week or so ago — for no particular reason at all — I decided to update sk.ring, the ancient webring management script that I wrote about a zillion years ago. I got about halfway through it when I realised that all that I was really doing was ripping code out of sk.fan. Now, I’d had an idea once of combining the webring and fanlistings scripts into one big monster script that could handle both those kinds of sites, as well as cliques (remember those?), but in the end never got around to it.

Until now!

So was vs.hive born. Behold its mighty feature set!

  • PHP/MySQL.
  • Lightweight, easy installation and customisation.
  • User and search-engine friendly URLs.
  • HTML Strict.
  • Can be used for webrings, fanlistings and cliques.
  • Stat-block including total members, total queued and last approved members.
  • Notification if no new members have been added recently.
  • Users may log in to change their own details.
  • Users may reset their passwords
  • Fanlisting & Clique: Country list displays most-frequently-used countries first (i.e. it’s non-Anglocentric).
  • Fanlisting: Option for users to hide email if a URL is provided.
  • Fanlisting & Clique: Automatic code sorting and grouping.
  • Webring: Auto-parse member ring code.
  • Dynamically changing Codes and Memberlist depending on hive type.
  • Admin notification on new member and user detail change.
  • Fanlisting & Clique: Optional ‘question’ field.
  • Optional comment field.
  • Optional separate code and ‘main site’ URLs.
  • Validiation for legitimate emails and URLs.
  • Option to disable email notifications.
  • Spam protection for emails on member list page.
  • Optional JavaScript spam protection for forms.
  • Fanlisting & Clique: Upload and delete image codes via the admin panel.
  • Clique: Optional sort by country.
  • Mass-mailing feature.

And all that in only 16 files and one MySQL table! Though technically there are actually only two ‘doing stuff’ files, neither of which exceeds 900 lines; if you can’t tell, I’m kinda proud of the neatness of most of the code (the code sort function is a bit shittacular).

I converted Uncreative and RADIO.BLOGS to vs.hive in ‘webring’ mode, and you can see a demo of the fanlisting mode here. The installs took me all of about five minutes, however I’m conscious that this is my own code so of course I’m going to find it easy to install. If anyone out there in reader land has an extra couple of minutes on day and feels like doing some UAT,1 it’d be most appreciated. The one thing I’m not 100% sure on is how easy the individual pages are to customise; I had to sacrifice a bit of flexibility in the name of light code. Plus I’m sure there are some major security flaws but, meh, whatever! That’s the best part about running scripts that no-one else does; security by obscurity.

  1. It’s not technically beta testing, since the code has been released… but functionally it’s the same deal. ^

610 words posted 1078 days ago at 11:58 am.

This entry has 15 comments from Belinda, Dee, omikami. Tell Dee what you think?

Filed under Code Girl and tagged with , , , , , .

Written listening to Junior Senior, "Move Your Feet".

Related posts...


15 Comments

  1. 1078 days ago
    102 comments

    Belinda

    Oooh looks awesome.

    What’s automatic code sorting?

    • 1078 days ago
      1,606 comments

      Dee

      Fluff, mostly. If you look at http://skode.void-star.net/projects/vs.hive/demo/codes.php ]” class=”ext”>this page, it just means that (if you tell it to) it will sort your code graphics by size automagically.

      Ironically that was pretty much the hardest bit of code to write in the entire thing. >_O (Well, not ‘hard’ exactly but algorithmically the most complex, because it’s traversing a directory listing and doing a manual sort on filename rather than pulling data pre-sorted out of a database.)

      • 1078 days ago
        102 comments

        Belinda

        Oh wow, I see. Sounds complicated! @_@

        Can the script convert existing fanlisting data from other fanlisting scripts?

        • 1078 days ago
          1,606 comments

          Dee

          Doesn’t do it natively ATM (got no need for it for myself), but if you give me a couple of hours and the schema you’re working from I can probably knock one up.

          BellaBuffs, right? Flat files shouldn’t be too hard; Enth3 is the one that scares me. That code is whacked…

          • 1078 days ago
            102 comments

            Belinda

            No hurry! I’m still more comfortable with flat files at the moment, mySQL databases still intimidate me somewhat. Plus, converting over would take a while with the layout conversion and what not.

            Though if you’re releasing the script publicly, it might encourage more people to use it if it can convert from popular fanlisting/clique scripts around. That includes Enth3 of course. :P

            • 1077 days ago
              1,606 comments

              Dee

              mySQL databases still intimidate me somewhat.

              How come? I guess because I come at it from a programmatic angle, and (as previously discussed) MySQL is much easier to work with (and slightly harder to fuck up) than flat files.

              • 1076 days ago
                102 comments

                Belinda

                Because I don’t write coding I guess! I never really tried to mess or play with mySQL before, the concept of tables and commands and syntax and stuff just goes right over my head. I’m able to follow instructions to make changes to whatever script if needs be but beyond that, I’m completely clueless. But txt files are utterly harmless (albeit messy looking) files of data! I also have the idea that database files are more susceptible to hacking than text files? I might be completely wrong though, do correct me if I am!

                BTW, are you thinking of adding spam protection measures such as CAPTCHA or Akismet?

                • 1076 days ago
                  1,606 comments

                  Dee

                  But txt files are utterly harmless (albeit messy looking) files of data! I also have the idea that database files are more susceptible to hacking than text files?

                  Actually, it’s pretty much exactly the other way around. I mean, badly written code is badly written code, and more sites out there use MySQL than use flat-text files, which mean that more or the hacks you hear about are for MySQL, but that’s got more to do with popularity than damage.

                  From a programatical perspective, writing user data to text files is substantially less secure. The absolute nutshell bare-bones reason why is that MySQl is a controlled environment, whereas a text file is not. If someone compromises your database, all that they will be able to do is compromise your database. But a text file is sitting in the OS itself; you don’t compromise the file, you compromise the operating system. That’s when bad things happen.

                  MySQL hacks are injections; they compromise data. So someone maybe gets hold of the hashes of your users’ passwords, or emails, or they mangle your queries so that they can always authorise themselves on admin login, or whatever. Text files are suceptable to these hacks as well as OS hacks; the most common one is uploading a PHP-based shell script and then using this as a gateway for further damage. It’s essentially the difference between someone compromising your website and someone compromising the entre server (using your domain’s root account login).

                  That’s why I don’t use them on my own site anymore; every time I’ve tried in the past (with everything from oekaki boards to earlier versions of Greymatter) it’s ended badly. Having someone drop all the rows out of your database is annoying, but it’s not going to get your account shut down by your hosting company.

                  BTW, are you thinking of adding spam protection measures such as CAPTCHA or Akismet?

                  Could do both in about an hour, I guess, but I deliberately left them out. Firstly because I want to see how the JavaScript goes, and secondly because I’m a big proponent of http://skode.void-star.net/scripts/phpphp/ ]” class=”ext”>DNSBL solutions which are, like, a bazillion times better (it’s what commercial anti-spam applications use); the readme for vs.hive encourages people to impliment that (or something like that) instead. It’s not ‘web trendy’ right now like Akismet is, but it’s a much better system.

                  • 1074 days ago
                    102 comments

                    Belinda

                    Ooh I see that’s neat.

                    I guess I’ve always viewed mysql data to seem really complicated with their many tables and stuff, but when you get down to it (as seen from when you export a database) it’s all packed into one single .sql file anyway.

                    • 1074 days ago
                      1,606 comments

                      Dee

                      MySQL really isn’t scary. It can be a little complicated, but only when you start getting into high-level normalisation (the ‘relational’ part of relational database). But a single-table MySQL schema — which most simple apps like vs.hive use — is pretty much a glorified spreadsheet.

                      If you’ve ever used Excel (or, even better, Access) you can use MySQL.

  2. 1039 days ago
    3 comments

    omikami

    I installed it here: http://dofollowhive.pcriot.com/
    Have a look.

    Everything is working fine and is 100% understandable to configure. I also had zero problem migrating it from my home simulated server to my live server, and then again to this new server. It’s a charm. I even added rel=”dofollow” to the links ala..

    “.”"”.” “.”rel=”.”"”.”dofollow”, $ etc. etc. etc.. fun.. simple.. straight forward.

    It’s not a live project yet or anything. I am still dabbling with it. Very neat code by the way. I wish others were as considerate.

    I did have a problem getting affiliates working, as well as, not being able to find news module (is there one?) but it all works great.

    • 1039 days ago
      1,606 comments

      Dee

      Yup, I’ve seen you in my referrer log. :)

      Very neat code by the way. I wish others were as considerate.

      Thank you very much! I’ve actually been criticised for my ‘neat’ code because it uses PHP short tags (there’ve been rumours for, like, seven years that they’re going to be depreciated ‘soon’), so I’m glad someone out there justifies my inclusion of them. ^^”

      I did have a problem getting affiliates working

      Oh? What went wrong? Any suggestions on what can be improved?

      not being able to find news module

      Not yet, no; it’s a future project.

      And for the record, my blog is the http://void-star.net/feedback ]” class=”ext”>fastest place to get hold of me. Though my email address is provided in the vs.hive readme file. ;)

    • 1039 days ago
      3 comments

      omikami

      Even your comment is neat!

      As far as affiliates, since it wont work and I’m out of caffeine I haven’t tried to crawl through and diagnose anything. When I installed it, it replied “Hey you stop it!”..just kidding, it said my affiliates folder wasn’t writable (which it very well was – I mean, duh). So I commented out the error line just to see what would happen and the forms all displayed gracefully (as usual) yet when I tried to add an affiliate, no love from the script. No biggie because everything else works. Frankly I don’t know what the affiliates script does anyhow, I was trying to find out. In the morning I’ll see if I can figure it out, but I’m php handicapped. My knowledge is limited to tweaking WP and PHPbb (ech!).

      Wait until you see the theme I’m making for it… whoooeee (I’ll send you a copy)

      btw: I messaged you on facebook lol (oops?!)

    • 1039 days ago
      3 comments

      omikami

      I like your smilies :)

      (edited: I just found the edit button…sorry :P )

Add a Comment

Add a Comment

A legitimate email address or OpenID-enabled URL (e.g. your Dreamwidth journal) is required. Links to LiveJournal accounts will be removed due to malware on that site. First-time comments are both welcome and moderated. Some HTML is allowed. There is no free speech.