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;
}