YOURLS плагин для фильтрации вызовов API для определенного столбца MySQL

У меня есть веб-сайт, который позволяет пользователям создавать сокращенные URL-адреса. Чтобы справиться с сокращением URL, я использую YOURLS (сокращающий URL с открытым исходным кодом), который я запускаю на другом моем сервере и соединяю два сайта через вызовы API.

Я создал плагин YOURLS с некоторыми пользовательскими действиями API, поэтому, когда пользователь создает короткий URL-адрес, он присоединяет свой идентификатор пользователя с моего веб-сайта к таблице yourls_url, как показано ниже:

Когда пользователь заходит на свою страницу "Мои ссылки", мне нужно сделать вызов API, чтобы вернуть все короткие URL, созданные этим пользователем. Для этого нужно просто создать фильтр для " api_result_stats".

Это созданный мной фильтр, который должен возвращать только те URL-адреса, которые были созданы указанным пользователем:

yourls_add_filter( 'api_result_stats', 'separate_users_api_stats' );

function separate_users_api_stats() {
    global $ydb;

    $user = ( isset( $_REQUEST['user'] ) ? $_REQUEST['user'] : '' );

    $table = YOURLS_DB_TABLE_URL;
    $result = $ydb->query("SELECT * FROM `$table` WHERE  `user` = '" . $user . "'");

    return $result > 0;

}

Чтобы проверить это, я могу попробовать http://example.com/yourls-api.php?action=stats&user=test123&limit=10&filter=last&signature=xxxxxxxxxx но, к сожалению, все, что я получаю, это:

Я не слишком знаком с PHP/MYSQL, поэтому я застрял в этом довольно давно, если у кого-нибудь есть какие-либо идеи относительно того, что я делаю не так, или может привести пример, это будет с благодарностью!

1 ответ

Решение

Вот что решило это для меня:

yourls_add_filter( 'api_result_stats', 'separate_users_api_stats' );

function separate_users_api_stats() {
    global $ydb;

    $user = ( isset( $_REQUEST['user'] ) ? $_REQUEST['user'] : '' );

    $table = YOURLS_DB_TABLE_URL;

    $query = "SELECT * FROM `$table` WHERE `user` = '" . $user . "'";

    $result = $ydb -> get_results($query);

    return $result;

}
Другие вопросы по тегам