Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by maxxd

  1. Honestly, given the light specs you've described I think a framework would probably do most of the work for you. If you're wanting to learn, do it from scratch - what you've described is not tough to do (it is, however, tough to do right - which makes it a good learning experience). If it's a work thing where you're on a deadline but you've got free reign, look at some frameworks. Heck, what you've described can be done in WordPress with little to no coding.

  2. It looks like your validation script makes zero sense, but it's hard to tell without braces and/or correct indentation. But it certainly looks like the first thing you do is attempt to assign $_POST['account'] to $acct_subject if and only if $_POST['account'] is empty.

  3. Your while() criteria is incorrect and unnecessary. I haven't tested this code, but give it a shot:

    $acceptedStates = [
    	'Measure Up',
    	'Model Drawing',
    	'Concept Design',
    	'Developed Design',
    	'Resource Consent',
    	'Construction Documentation',
    $xml = simplexml_load_string($response);
    $xml = usort($xml, function($a, $b){
    	return $a['job_due'] <=> $b['job_due'];
    foreach($xml->Jobs->Job as $item) {
    	if(!in_array((string)$item->State, $acceptedStates)){
    	$projects[] = [
    			'job_no'          => (string)$item->ID,
    			'job_name'        => (string)$item->Name,
    			'job_due'         => date('d/m/Y', strtotime($item->DueDate)),
    			'job_status'      => (string)$item->State,
    			'job_staff'       => (string)$item->Assigned->Staff->Name,


  4. All that having been said, if you're using $_POST input in a WordPress environment (which obviously I know you are), use some kind of safety features. I'd recommend at least using a WordPress nonce in the form output and data validation routines, and use the wpdb::prepare() method on the query. It's not a prepared statement exactly, but it is a little more responsible than just blindly trusting user-submitted data, especially if you're expanding your user base as you said you were in one of the other threads.

  5. 7 hours ago, ajoo said:

    I do have more questions, but seriously, I am a bit scared to ask them.

    Don't let my bad mood scare you off - most people around here are very helpful and nice.

    Having said that, one of the things that's going to help you learn how to code is to try things. The code you've already seen in this thread uses class-based selectors and dynamic ID and class assignment. So, if you extrapolate the two, you can use the dynamic class/ID assignment you've seen with the appropriate selector method. If you try it and it doesn't work out, then post the code you've tried and we can help you figure out why it didn't work; the important part is to show the work you've done.

  6. 5 hours ago, ajoo said:

    I hope this is the right way to go about it.

    It's not.

    5 hours ago, ajoo said:

    If there is a better simpler way, please suggest.


    5 hours ago, ajoo said:

    Could I have done it using say the class property or the name of the input field instead of using tabIndex?


    5 hours ago, ajoo said:

    If so, then can you kindly demonstrate how it could be done by that method. 


    Admittedly, I'm asking you to think a little when it comes to some of it, but ... really? Beyond that, Barand has been his typical self and gone above and beyond the call of duty to answer your questions in no uncertain terms and with concrete code examples; yet there are more requests to simply do it for you.

    • Like 1

  7. I would use grid. Using the data-pos="n" attribute selector in CSS and JS you change the color as you want. You could also just use the IDs in the linked fiddle if that's easier.

    You could also use the nth-of-type() selector in CSS to cut down on the typing if you want.

    • Like 1

  8. 1 hour ago, Jamiesw said:

    $query = 'SELECT parent_question, parentid, parent_pageid, child_question, childid, child_pageid from ct_vquestion_parent_child_lookup where parentid='.$parentid.'';
    // Prepare statement
    = $this->conn->prepare($query);

    This is not how you do a prepared statement. You're still injecting the variable directly into the SQL string. Check the manual for the proper way to use prepare() (note that the link is for PDO, but the concept is the same for mysqli.

  9. 7 hours ago, requinix said:

    Or with PHP 7.4's arrow functions,

    $max = array_reduce($numbers, fn($max, $n) => ($n % 2) == 0 && $n > $max ? $n : $max, 0);


    There's a part of me that thinks they're developing future PHP specifically to make the kids think they're programming in JavaScript... I mean, I actually really like fat arrow functions in JS, but every time I see an example of it in PHP I have to pause a second and readjust my brain.

  10. Given the requirements from your company, I'd definitely argue that you're not an idiot. There are times when you have to just do what you've been asked to do, no questions. And yeah, if there's a chance that you'll be moving to a different CMS, extracting specific data from the posts table is difficult at best.

  11. Ah - OK. You can still use the WordPress WP_Query object (global $wpdb) to interact with the database, you'll just have to supply the table names yourself. Also, routing should still work as expected - if the correct rule is inserted in the rules array, you should be able to visit /kudos/JFMGTTQ5 and use get_query_var() to return 'JFMGTTQ5'. As far as an archive listing goes, I think you'll have to that yourself. Not trying to be nosy or pry, but is there a reason it's not set up as a custom post type?

  12. Also, I'm assuming quite a few things about your project that may not be true. I'm assuming, for instance, that kudos is a custom post type and you're trying to show both an archive listing of kudoses and single kudos records both. I'm also assuming that you're not wanting to show a kudos specified by URL parameter on a random page (for instance, here's 1 kudos record on the 'about us' page!).

    Each of these assumptions could very well change the overall approach; and even outside of all that, dealing with routing in WordPress is a convoluted and weird rabbit hole on it's own...

  13. It looks like your rule is slightly malformed. As I said earlier, I've found the add_rewrite_rule() function to be a bit fiddly - I try to use the 'rewrite_rules_array' filter instead. Try this:

    add_filter('add_rewrite_rules' ,'add_kudoskey_rule');
    function add_kudoskey_rule(array $rules){
      $new = [
        'kudos/([^/]+)/?$' => 'index.php?pagename=kudos&kudokey=$matches[1]',
      $rules = array_merge($rules, $new);
      return $rules;

    Now, with this in place you should be able to (after you've gone to the Permalinks page and clicked 'Save' to clear the rewrite cache) go to '' and it should show that specific kudos. If you want to get the kudos key referenced in the URL, use get_query_var('kudoskey').

    If you want to show an archive listing of all kudos records, make sure that 'has_archive' is set to true in the arguments array of your custom post type registration call, then go to '' and you should see the listing.

    The whole point of adding a rewrite rule is to enable pretty URLs and to not have to use '?variableName=variableValue' because it's easier for the user and better for SEO.

    • Thanks 1

  14. Look at the 'query_vars' and 'rewrite_rules_array' filter hooks as well - I've had varying degrees of success using either the add_rewrite_rules() function vs. just brute forcing the rewrite_rules_array array via those two hooks. I wish I could remember why, but it's late and it's been a long freaking week, so that information got purged. If I remember tomorrow I'll let you know, but in the meantime those two hooks are another way to go about skinning this particular cat that might be a bit easier to follow. Rewrites and routing can get confusing.


  15. 18 hours ago, SkyRanger said:

    if I change it to the ?urlid will not work

    Of course it won't work - you're not passing 'urlid' in this case. You're passing 'p'.


    6 hours ago, SkyRanger said:

    was wondering if somebody could point me in a direction to learn more about rewrites

    Did you follow the link I put in the first post to the codex rewrite rules page?

    I think I'm still not getting what you're asking - even using post name as the permalink value in WP you can use URL parameters like normal. Just output the permalink, then append URL-encoded key/value pairs, then use them in $_GET.

  16. I'm confused by your question. In a URL, '?xx' is the first variable passed via GET, '&xx' is any of any number of variables passed in the URL after the first. So your desire to change '?urlid=abc123' to '&urlid=abc123' is solved by adding a variable before the urlid.

    What is the value of your permalink option in the Admin > Settings > Permalinks? If you're set to 'Post name' there are a few different things you can do. Obviously you can grab $_GET['urlid'] using an early-running hook and go if it's anywhere in the URL string. However, if you're saying that WordPress is removing the '?urlid=' part, that's a routing issue. You can set up routing in WP using the WordPress rewrite rules which will give you something along the lines of 'http://url.com/kudos/abc123' or 'http://url.com/urlid/abc123' depending on how it's all set up.

  17. 1 hour ago, Paul-D said:

    I use dechex(time()) and use this as the name. The reason is that some of the older web pages got screwed up by a web browser trying to artificial intelligent and complete what I am entering based on the name of the text box. I then store the name in a session variable so the update page can use it for the name of the text box.

    Unless I'm reading that wrong, it seems to me that turning off autocomplete would be a heck of a lot easier all around.

  • 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.