Looking for the template doesn't work correctly.



  • There are codes in the templates, like: [user = "1"]тут инфо для юзера который в группе 1[/user] Target: If the user is id = 1, we simply remove the code and leave the contents, and if id!==1 then we take everything together with the code short.

    The violin itself:

    preg_match_all('#([user\s*=\s*\"\s*(.+?)\s*\"])(.+?)([\/user])#is', $source, $arr_u_group);
    

    $i = 0;
    foreach ($arr_u_group[0] as $value) {

    /**

    • @return $arr_u_group[1][$i] - [user = "..."]
    • @return $arr_u_group[4][$i] - [/user]
    • @return $arr_u_group[2][$i] - id группы пользователя
    • @return $arr_u_group[3][$i] - содержимое
    • guest - гость
      */

    // если перечислено несколько номеров id
    $id_set = explode(",", $arr_u_group[2][$i]);

    foreach ($id_set as $id) {

    if(isset($_COOKIE["Auth"]) && $_COOKIE["Auth"] == "admin"){ // Если админ, то показываем всё
        $api -> set($arr_u_group[1][$i], "");
        $api -> set($arr_u_group[4][$i], "");
    } else{
    
        if($id == "guest"){
            if(isset($_COOKIE["Auth"])){ // если авторизован, то скрываем всё
                $api -> set($value, "");
            } else{ // если не авторизован, то показываем
                $api -> set($arr_u_group[1][$i], "");
                $api -> set($arr_u_group[4][$i], "");
            }
        } else{
            if(isset($_COOKIE["Auth"])){ // если авторизован
                if($id == $_COOKIE["Auth"]){ // и если группа пользователя совпадает с номером, то показываем
                    $api -> set($arr_u_group[1][$i], "");
                    $api -> set($arr_u_group[4][$i], "");
                } else{ // если не совпадает, то скрываем всё
                    $api -> set($value, "");
                }
            }
        }
    }
    

    }

    unset($id);

    $i++;
    }

    unset($i);
    unset($value);

    Only if the id user matches the id in the code short, otherwise it doesn't work, it'll make it all right.

    I think it's a problem, but I don't know what it is:

    else{ // если не совпадает, то скрываем всё
    $api -> set($value, "");
    }

    Please tell me, I'm in regulars really tight.



  • Comments

    I already fixed it, made it through the array_search so much better and faster.

    Vladimir 24 Dec. '15 at 8:04




Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2