Jump to content

alexweber15

Members
  • Posts

    238
  • Joined

  • Last visited

Posts posted by alexweber15

  1. FileZilla FTW!  ;)    the only worthy successor to WS_FTP  8)

     

    although this is getting kind of tiresome:

    Welcome to version 3.x Please report any bugs you might encounter
    i like that it updates frequently though :)

     

    i worked for a couple months with a mac developer and he was obsessed with one that hasn't been listed yet: Transmit

     

    must be good.. but then again he's a mac user  ::);D

  2. Sitelinks are additional links Google sometimes generates from site contents in order to help users navigate your site. Google generates these sitelinks periodically from your site's contents.

     

     

     

    Sitelinks are completely automated, and we show them only if we think they'll be useful to the user. If your site's structure doesn't allow our algorithms to find good sitelinks, or we don't think that the sitelinks are relevant to the user's query, we won't show them. However, we are always working to improve how we find and display sitelinks

     

    sweet, so i guess that means i actually retained something from that conference :P

  3. Generally, in the UK, you need to have an Online Merchants account with your bank - Similar to the merchants account you have with the CC terminal. Then you'll need an account with a  payment gateway, such as SecPay, WorldPay, ProTX, etc.

     

    hmmm you must have some inside info ;)

    i saw nothing about localization in his profile so i assumed US  ::)

  4. Site map maybe.  Look into the Google webmaster tools and make a site map.  And some of it is just how they index your site.

     

    that's what I thought too, but at a conference a few weeks ago (here in SP, Brazil of all places!) they actually said that despite having a sitemap is a prerequisite for "them cool google index" its actually determined by algorithms.  same as adwords.  its interesting in case people are wondering:

    1) paying for an adwords campaign does not guarantee your add will appear (regardless of your established monthly budget and price per click).  they have relevance algorithms to try and maximize conversion rates for you so, if you pick your keywords poorly (ie too vague; "short tail" === many clicks, few conversions) you'll get less exposure than if you buy extremely specific keywords that will definitely be searched less often, but have a much higher conversion ratio associated with them ("long tail").

     

    :)

  5. I have a script that hits a soap service, and imports data.  I plan on storing the position of the script in a database and checking it on the start of script, and resuming where it left off.  I would think that I could call another instance of the script and execute it on error, but I dont know how I would go about executing an action after the script fails. ??? 

     

    Is this posssible?

     

    Thanks.

     

    the only way i can think of is making it object oriented and putting the "damage control/error" parts in the class destructor method :)

     

    oh man im so pissed off right now  >:( >:(

    i just spent at least 40 mins researching and posting the best and fullest example for you dude and ff crashed and actually did recover the tabs but not the form content  ???

     

    so sorry im just gonna have to point you in the right direction as opposed to giving you a head start...

     

    Read the documentation first to get a general idea:

     

    phpdoc references:

    serialize()

    unserialize()

    Magic __sleep() and __wakeup() functions (read serialize() and unserialize() to understand it better)

    Magic __destruc() function

     

    now read this article:

    The Basics of Serializing Objects in PHP

     

    basically what i meant in my previous post was that you should use try-catch blocks (see Exceptions) to surround code ts prone to generating fatal errors or even warnings (use of @ is discouraged and apparently negatively impacts performance)

     

    so basically you just need to add a few methods to your class (or transform your procedural code to a class)  :)

     

    function __construct();

    accept and assign/process any parameters if applicable and then call init() to initialize the class

    * reason why you want the actual initialization routine separate from the constructor is because you're gonna need to call it from __wakeup()

     

    function init();

    try to call connectDB(); and:

    - if it returns true try to call checkDB();

    - if it returns false assume "restart script" (just means your variables are untouched, no need to instantiate the class again for example)

     

    - try to call connectSOAP(); and:

    - if it returns true "GOTO (*)" :P

    - if it returns false serialize "everything" (the entire class) and write to the $_SESSION

     

    function __destruct();

    try to call updateDB(), catch Exceptions (log them?) and write from the $_SESSION variable containing the serialized class info to a file (as per the tuturorial)

     

    function updateDB(); (return bool)

    try to update the database, catch Exceptions (log them?) and serialize everything to a $_SESSION variable

     

    function connectDB(); (return bool)

    try to connect to database, catch Exceptions (log them?) and serialize everythingto a $_SESSION variable

     

    function checkDB(); (return bool)

    if connected to database try to check whether you're done reading info from the webservice  then "GOTO (**)"

    and return true if done and false if not.

     

    function __sleep(); (return array)

    this one's a freebie:

    foreach($this as $key => $val){
         $serializeMe[$key] = $val;
    }
    return $serializeMe;
    

     

    function __wakeup();

    - do the opposite as __sleep(); ie: foreach $arrayname assign the value to the corresponding class variable

    - try to call connectDB(); and:

    -- if true try to call updateDB();

    -- else do nothing

     

     

    ok so there's a few missing things and this is far from perfect but hopefully you got the idea right?

     

    NOTES: (*) and (**) are actually related.  you are going to have to define a parameter to know where you stopped and where to resume from... serialization is a good way of preserving the state, specially if you have DB issues, but you will lose all open connections/streams (such as a web-service or database) and I cant help you cause I have no context!!

     

    Off the top of my head, if its indexed items maybe keep track of the index.  if its something more complex you're gonna have to decide what you need to know to decide where to resume from!

     

    hope you got the idea! :)

     

    Alex

  6. I think $DB = new DB;  would bother me.

    I would do $db=new Db();

     

    agreed on both counts!

     

    I use camelCase because I learned that way in the process, and it seems a lot of people use it.

     

    Like I said, I learned Java first which is why I'm accustomed to naming variables, functions etc. the way I do.  I guess it has a lot to do with what language you learn first because most of them have their conventional ways of naming.  If you learn PHP first then I guess you just make up your own...

     

    and again! :P

    Was introduced to OOP in Java and later C (still decent and command-line Java (havent touched an IDE in ages) and the only things I remeber about C are:

    1) pointers SUCKED (in retrospect i don't see why such a big deal, but at the time there wasn't a single person in my class at uni who wouldn't cry inside thinking about them.... lol)

    2) implemented enums in a cool/useful way

    3) i hated how anal about header files (".h") it was... if anyone hasn't seen any C (dont know if its the same in C++) its basically a class interface (im pretty sure obligatory too) and its strictly 1 class per file (good practice) but inconvenient for quick tests.

    4) uber stronhly typed: (iirc) return values and input hints obligatory for all functions, all functions obligatorily have to at least "return;", lots of type casting and conversions, strings and arrays are Objects (a string is an array of "chars" (basically an ASCII code) and an array is well, an array ad in fact i don't even think that keyword existed, it was implied when using []

    5) vaguest error messages EVER.  debugging a missing semi-colon could take hours...lol

     

     

    Anyway enough rambling... but I guess my background's to blame for some of the proposed language features I've been discussing recently :)

  7. this isn't that hard to do with PHP-alone and once you're more comfortable adding some nice js effects to it will make it nice and sexy  ;D

     

    *disclaimer: using tables and otherwise frowned-upon design techniques and also NO VALIDATION (or any error checking for that matter) to illustrate the general concept...

     

    sorry im writing this directly in the forum textarea so no echos.  if you copy and paste into an IDE it'll hopefully make sense and probably have a syntax error or two.... apologies in advance if you find this confusing, ill be happy to clarify if necessary!!

     

    <?php
    session_start();
    // initialize variable
    $_SESSION['values'] = array();
    
    // handle posts
    if($_POST['addline']){
        $_SESSION['values'][] = $_POST['input'.(string)count($_SESSION['values'])];
    }elseif($_POST['save']){
        // prepare input for db
        // start list
        $str = '<ul>';
        // loop through inputs and add items to list
        foreach($_SESSION['values'] as $value){
            $str.= '<li>'.$value.'</li>'; // no need for <br> to achieve list format but add if u want
        }
        // done adding items, end list
        $str.= '</ul>;
    
        // INSERT $str INTO THE DATABASE...  MAYBE SOMEONE ELSE CAN TAKE OVER FROM HERE
    }else{ ?>
    <form method='post'>
    <table>
    <!-- loop through and show all current values and if none are available just one blank field -->
    <?php foreach($_SESSION['values'] as $key => $val) { ?>
    <tr>
       <td colspan="2"><input type="text" name="input<?= $key; ?>" value="<?= $val; ?>"/></td>
    </tr>
    <?php } ?>
    <!-- ok looping done, show buttons -->
    <tr>
        <td><input type="submit" name="addline" value="add line!" /></td>
        <td><input type="submit" name="save" value="save to db" /></td>
    </tr>
    </table>
    </form>
    <?php } ?>
    

     

    this has a 80% chance of working :)  if you copy and paste into a proper IDE the HTML/PHP seperation will become clearer and you might find a few syntax errors.

     

    i hope you understood the general concept! :)

     

    now for improvements:

     

    - validation, always

    - in my experience count() sometimes returns unexpected results with empty arrays so check the documentation and maybe use the "type and value" operator

    ===

    to check for an empty array and adjust accordingly

    - this is important because the names of the text inputs increment with the array and if they don't match up for whatever reason the results will be inaccurate/incomplete.

    - you're gonna have to at the very least apply htmlentities() to $str before inserting it into the database

    - consequently, when you retrieve the results from the database you're gonna have to apply html_entity_decode() to the results to get the html entities back to their original form

     

    + many other possibilities

     

    hope i didnt fudge up too much as far as the syntax goes doing this notepad style but i think its pretty accurate, also my bad about the weird switching back and forth between php and html (if its new to you then cool, a bonus tidbit of info, but really you should avoid it because in certain situations it might output extra whitespace which could mess things up

     

    and yeah this post was long enough.... so no DB freebie for you!  :P;D

  8. I have a script that hits a soap service, and imports data.  I plan on storing the position of the script in a database and checking it on the start of script, and resuming where it left off.  I would think that I could call another instance of the script and execute it on error, but I dont know how I would go about executing an action after the script fails. ??? 

     

    Is this posssible?

     

    Thanks.

     

    the only way i can think of is making it object oriented and putting the "damage control/error" parts in the class destructor method :)

  9. lol not necessarily :)  you could just create some sort of batch or wait, what am i talking about, PHP script (!) that obfuscates/PHARs all the stuff automatically.

     

    so you work with normal code then run the script, grab the jibberishy output and distribute it.

    just make sure you use some sort of version control so you don't shoot yourself in the face by mistake :)

     

    either way, give some thought to what i mentioned about user customization... imagine if all blogs looked like that default blue and white wordpress theme  ;D  at least give them a nice customizable theme engine to work with!  ;)

  10. nothing OO-related here but it answers the file-size question:

     

    function return_kbytes($val)
    {
    $val = trim($val);
    if (strlen($val) == 0) {
    	return 0;
    }
    $last = strtolower(substr($val,strlen($val/1),1));
    switch ($last) {
    	// The 'G' modifier is available since PHP 5.1.0
    	case 'g':
    		$val *= 1024;
    	case 'm':
    		$val *= 1024;
    	case 'k':
    		$val *= 1;
    }
    return $val;
    }
    $m = is_renameable();
    
    /* get maximum upload size */
    function getMaximumUploadSize()
    {
    $upload_max = return_kbytes(ini_get('upload_max_filesize'));
    $post_max = return_kbytes(ini_get('post_max_size'));
    return $upload_max < $post_max ? $upload_max : $post_max;
    }
    

     

    Credit where its due:

    Both above functions are from the script: "TinyWebGallery" written by Michael Dempfle and licensed under the GPLv2

  11. oh and i almost forgot:

     

    even though i said CMS and you clearly stated it too was thinking e-commerce the whole time...lol... sleep deprivation does take its toll.

     

    if its a cms and you are bent on making money of it then open source may not be a good alternative because a cms could be a blog, news site, etc (personal use) which doesnt infringe the license.

     

    so there is an alternative to protect your code:

     

    OBFUSCATE THE HELL OUT OF IT!!!  ;)

     

    seriously.  dont mean to be one of those "google it" pricks, but there's links to free php apps that do exactly that in at least 6 of the first 10 results! :)

     

    also take a look at the PHAR extension/class/whathaveyou at first it seems like zipping it, but if you read a bit further down the documentation mentions a multitude of ways to encrypt and protect your source.

     

    the plus here is that it makes it easier to distribute too :)

     

    but be warned, pretty much anything can be reverse-engineered.  ok depending on the encryption you use it could take days, weeks even months, but it will happen!

  12. as far as working goes yeah it probably would (might have problem cross-domain requests) but nothing that cant be gotten around.

     

    but consider this:

    - your bandwidth usage might go through the roof and increase your hosting expense

    - you become liable for ANY downtime that clients experience (and i mean its happened to google who have like a cluster of a billion servers and there's always external factors that our out of your control that could have an impact)

    - you'll be the script-nazi or something equivalent

     

    and there's a ton of other reasons NOT to do this.  first of all, read this (open-source license comparison) ok now im not trying to push my beliefs on you or brainwash or anything like that but as long as you live in the US (or another country with decent internet/intellectual property legislation) making it open-source != giving it away.

     

    the very first e-commerce solution i implemented i used a paid template for (ecommercetemplates dot com or something like that) and it actually never went live but was a great learning experience (so i can technically still use it btw) but anyway the point im getting at is they had a decent way of guaranteeing what you're trying to do.

     

    Updates.

     

    That's all.  Updates.  Basically you pay a 1-time fee download the current version in all its open-source glory and use it.  And you get 6 months free updates.  After that you keep sending update emails (unless they opt out) and your customers will realize that if its a good product its worth paying for updates/support.

     

    In fact, support is probably where you might have the potential to make the most money as opposed to sales.

     

    Other positive aspects are offering addons and themes and stuff and the major advantage of making it open-source is that your clients can customize it to match their branding, which is a HUGE plus for them (at least it was for me when i was in that position).

     

    Now as far as stopping people from using the app on more than one project/domain you could enforce this by making your clients tell you where its hosted.  i dont think there'd be a problem with that.  so you still have your list of allowed domains.  and if you find it elsewhere being used for commercial purposes than you take legal action.

     

    you could also and i definitely don't support this sneak in some little snippet of code that pings your domain so you know who's using it (but if its open source it can just as easily be removed).

     

    Anyway good luck! :)

  13. im sure someone with more https experience can confirm mine or give you a more accurate answer but as far as i know:

     

    1) switching back and forth between http and https WILL generate browser warnings

    2) i personally think it compromises the sites security overall (if you transmit any kind of sensitive info over http) - but i have no concrete source to back me on this one

    3) the domain doesn't really matter, its the hosting that does.  if you really want to make it as secure as possible DON'T get shared hosting.  and if you must, get all the extra bells and whistles you can as far as SSL, unique IP, etc.  but really, getting a dedicated server is correct thing to do.

     

    there might be a loophole you can explore using iframes and ajax to load the js, css and images from a non https location (again no info to back this up sorry) but either way if you're gonna use ajax in the first place you should really go 100% SSL.

     

    so just merge that directory structure and you're good to go! :)

  14. im just going to go ahead and assume that you own and scanned all these ebooks you mentioned for the sake of avoiding controversy... and who's to say you didn't in the first place right? ;)

     

    just an observation: you said you chose .txt because its smaller and easier to work with.  smaller? yes; easier to work with?  not necessarily.  in fact it might actually be more difficult!

     

    and out of curiosity: do you have these ebooks in txt format already or are you planning to convert from pdf (or chm) to txt?????

     

    anyhow here's why working with PDF is easier:

    - first off your books are already separated into pages.  so no extra work necessary!

    - i assume you have pdf files to begin with (if not then this whole answer is irrelevant and for that i apologize)

    - there's more than one good PHP library out there to manipulate PDF files, so I'd say PHP is the best solution.  (i swear the bias is purely incidental...)

     

    ok enough bs here's how to do it:

     

    The best was PDFLib but it only works with PHP4 and is now paid, so these are the alternatives:

    PHP PDF Classes

    FPDF

    Haru PDF Class (extension)

    cPDF

    CezPDF ("easy cPDF")

    File_PDF

     

    A Nice Tutorial

    For Windows

     

    Sorry halfway through this post i realized that the best library has sold out (which coincidentally is the one the tutorial uses) and most PDF extensions seem to have halted development or been moved to the PEAR package.

     

    I recommend taking a look at FPDF and Haru PDF in that order and hopefully along with the tutorial you'll be able to put it together...

     

    I sincerely meant for this post to be more helpful but I hope it at least points you in the right direction)

     

     

    WAIT!!!!!

    just as i was finishing off this post i decided to check my phpinfo() and whaddya know!

     

    pdf

    PDF Support         enabled

    PDFlib GmbH Version    5.0.3

    PECL Version              2.1.4

     

    (this coming from a standard XAMPP install on Windows) so i guess you DO have access to PDFLib in the end (or maybe its just a trial or something) and either way the PECL extension is preinstalled too, so maybe there is hope! :)

     

    anyway normally i'd try and start you off with some code but its almost 8am and ive been up all night planning a project, working on another and catching up on reading and whatnot and I gotta be at work in an hour...lol

     

    anyway good luck and post back im sure youll get it working! :)

     

    (and dont fear the PDF!!! .txt is so.... notepad...  ::):P

  15. i was thinking the same thing about headers but since Maq mentioned nothing about it i decided not to overcomplicate :)

     

    anyway, did you get it to work Maq?

     

    I think you mean williamZanelli, not me.  :)

     

    yup!  :P my bad!  and just to complement neromir's explanation:

     

    Best way to do that might be with the session again, as already suggested with the error message.  Then you can just put the value back into your form fields like

     

    <input type='text' name='someName' value='<?php echo $_SESSION['variableName'] ?>' />

     

    that's what it would look like in the 'output part' and in your POST handler you would save all user inputs to session variables:

     

    // blabla
    if($_POST){
    foreach($_POST as $key => $val){
        $_SESSION['userInput'][$key] = $val;
    }
    // nothing else changes
    }else{ ... }
    

     

    again, excessive simplicity to get the message across but you really wanna be validating any and every thing that comes from a user input! :)  so maybe just add this:

     

    $_SESSION['userInput'][$key] = clean($val);
    

     

    and then define a function called clean() or use one of PHP's filter functions or something to avoid malicious code injections (especially if the data is going to a DB at some point) but anyway you get the picture right? :)

  16. According to your example (whether or not its pseudocode), using the CLASS_PREFIX method, unless you actually deleted or renamed the FictionBook class file, you would have to implement additional checks to make sure that you in fact can't instantiate any FictionBooks.

     

    True. And this is a good thing. If, per your example, the reason for restricting construction of a certain type would be out of stock or otherwise temporarily unavailable, a check should be made for this. Likely this is a possible recurring event, and in your scenario, you would have to "hack" the code each time such an event occurs. If it's not recurring, delete the class or mark it as obsolete, throwing an exception upon construction. This keeps the restriction with the subject, not the Factory.

     

    good point, hadn't seen that angle (i was just thinking in the "normal" scenario with all products available, that eliminating the need for additional checks would reduce code size, that kinda stuff).

     

    but all in all, i stand corrected!  i like your method better :)

  17. Just of curiosity, what would the advantages of class wrappers for primitive types be?  I don't see an upside.  In a strict language I see the use (I <3 the prim wrappers in Java), but in PHP, why bother?

     

    only reason I can come up with off the top of my head is for Type Hinting and (if they implement it) specifying return values for functions.

     

    (as far as i know both of these features can only be enforced upon Objects, hence the current state of type hinting; which supports only Objects and arrays - which are treated like primitives but are actually objects if i recall correctly) 

     

    disclaimer: sometimes i mix up Java theory though...  ::)    and on that note, big props for PHP for actually making strings a primitive type and abolishing the char type  ;D

  18. Two capitals have the same effect.

    For me, I use camelCase for variables

    and

    CamelCase for classes, so it helps distinguish them.  Not like you can't tell by the syntax (->, :: ) but I'm just anal that way LOL.

     

    A pet peeve of mine is that it seems the conventional wisdom is to start a class name with a capital, but I rarely see people use a capital when they instantiate it.

     

    like:

    $db = new DB();

     

    thats odd its always been kind of an axiom for me.  ClassNames always in ProperCase with no other characters.  Always!

     

    about your example btw: just to clarify: do you mean you think its weird that $db = new DB(); or are you saying that's how it should be? 

     

    cause that's how it should be! ;)

  19. (split the last 2 posts directed at me into individual replies to each author)

     

    Replying to 448191:

     

    My argument for enums is that you could achieve control over class instantiation by for example commenting out constant declarations.

     

    This requires some clarification. Commenting out things? More control by using an enum? First things that spring to mind are "why/what" and "how so" respectively, but maybe if you elaborate I will see your point.

     

    Ok you have a simple factory that relies on Constants to determine what Objects it can instantiate, ok?

    Let's get creative:  It's an online bookstore that uses a SimpleBookFactory to creates FictionBook, NonFictionBook and ChildrenBook objects.  (dont get hung up on the mundane details of the example names, yes i realize children books would probably be filed under fiction :P )

    ok?

    Now, god forbid, imagine that the bookstore is forbidden from selling FictionBooks or author's strike or supply runs out or whatever but the bottom line is: the factory should no longer be allowed to instantiate FictionBook objects.

     

    ok so we have to change something...

    According to your example (whether or not its pseudocode), using the CLASS_PREFIX method, unless you actually deleted or renamed the FictionBook class file, you would have to implement additional checks to make sure that you in fact can't instantiate any FictionBooks.

     

    According to my example, the BookFactory relies on a BookTypes enumeration which has the 3 aforementioned book types as constants to aid the constructor.  So to prevent FictionBook instantiation you could just open the BookTypes enumeration and comment out the line where the FictionBook const is defined.  So when BookFactory instantiates an object its now not even aware of the existence of FictionBooks because the constant 'no longer exists'.

     

    Finally, traditionally SimpleFactories use constants to determine what Objects it can create.

    And these are also traditionally hard-coded into the Factory class.

     

    I suggested that by removing the constants mentioned in the above class from the Factory class to a new enumeration class, you would adhere a bit more strictly to the open-closed principle, seeing as there would be no reason to ever edit the SimpleFactory class.  (you could even tarball it!)

    One could argue that this merely transfers the "open-closed principle flaw" from the SimpleFactory class to the enumeration class.  No arguments there.  But I personally feel that:

     

    1) this particular principle is a bit too utopic for most cases

    2) its 'safer' and even 'more elegant' to, if you must edit a class mid-production for whatever reason, edit an enumeration rather than a factory.  based on the relative complexity and responsibility of each class.

     

    My bad if i was vague before, maybe you still think I'm terribly wrong, but did I get my point across better now? :)

     

    Also, due to its class structure, you could (although it wouldn't really make any tangible difference) specify the inheritance/implementation directly in the enum's declaration (since it appears to have standard class notation).... and having "const __default" is also nice :)

     

    I honestly don't see the point in this. Maybe a code example would help?

     

    The fact that I said "it wouldn't really make any tangible difference" agrees that there is little point to this! :)

    and as i tried to whip out an example of moving the implements declaration to the enumeration class rather than the base class i realized its flawed and a dumb idea so scratch that.

     

    const __default is still convenient, though!  ;)

     

  20. Replying to corbin:

     

    In response to

     

     

    $myvar1 = 'foo';

    $myvar2 = null;

     

    $query = "INSERT INTO mytable (col1,col2) VALUES ('$myvar1', null)";

     

     

    What would $myvar2 be expected to put there?  Have you ever echo'd null before?  It's nothing....  Hence, that wouldn't make sense for a MySQL query.  Class wrappers for primitives aren't needed to avoid that, in my opinion.

     

     

     

    Or, maybe you copied that from the book.  Don't know if that was your thought or theirs.

     

    corbin, i copied my reply to a specific question posted in a google/usenet group (when i offered my solution - and in general on here too - i try to maintain as much of the original code as possible, so as not to confuse the person who asked the question) heres the link to the thread fyi: link

     

    and yes i know that echoing null is nothing.  but you're missing the bigger picture.  assume a scenario:

     

    a form with 3 required fields and 1 optional field:

    (and a corresponding database table with the optional field set to allow NULL values)

     

    - when POSTed the optional field will evaluate to an empty string (in the case of a text field for example)

    - the user then adds all POST values directly into the database

     

    = the optional database field will contain an empty string instead of NULL.

     

     

    I agree that there are MANY flaws in this situation, but like i said, i usually try to solve problems in existing code, not rewrite the other person's code.

     

    - first of all input should be validated and

    - more importantly, if a NULL value is part of the data to be inserted then you should just omit it from the statement in the first place

     

    so if after extracting POST you have:

    // assume these are the variables that extract($_POST) creates
    $myvar1 = 'foo';
    $myvar2 = null;
    
    $query = "INSERT INTO mytable (col1) VALUES ('$myvar1')";
    // no need to insert the null value
    

     

    as for Class Wrappers for primitive values, i agree that in this case its useless because its better to just avoid inserting the value in the first place like my above example

     

    BUT, as i mentioned in the disclaimer i was merely quoting/translating ad-verbatim from a recent programming book.  i don't necessarily endorse any of this.  just thought i'd share.

  21. That's something you have to ask SMF to do. PHPfreaks simply uses this board, and the staff tries to avoid modifying it's source as much as they can.

     

    Orio.

     

    lol ok!  ive only ever used phpbb so i know nothing about SMF i guess i was a bit naive in assuming this was something that could just be turned on or off :)

     

    well 2.0 is still in beta 4, there might be hope!  ;)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.