Skip to content

Commit

Permalink
Использовал функции движка
Browse files Browse the repository at this point in the history
- Для удаления новостей была использована функция движка
- Для удаления комментариев была использована функция движка
- Изменил нумерование версий
  • Loading branch information
Gokujo committed Apr 1, 2021
1 parent c899fb8 commit d464fee
Show file tree
Hide file tree
Showing 14 changed files with 155 additions and 42 deletions.
62 changes: 58 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,23 @@
[![GitHub license](https://img.shields.io/github/license/Gokujo/dle_api.svg?style=flat-square)](https://github.com/Gokujo/dle_api/blob/master/LICENSE)

![DLE-13.x](https://img.shields.io/badge/DLE-13.x-green.svg?style=flat-square)
![MySQL-5.5.6](https://img.shields.io/badge/MySQL-5.5.6-red.svg?style=flat-square)

![Версия_релиза](https://img.shields.io/badge/Version-1.0-orange.svg?style=flat-square)
![Версия_релиза](https://img.shields.io/badge/Version-0.1.3-orange.svg?style=flat-square)
![Версия_релиза](https://img.shields.io/badge/Version-BETA-orange.svg?style=flat-square)

# DLE API
Модификация для админпанели и глобальные функции для моих разработок
Совместимость проверенна на DLE-версиях 13.х
Совместимость проверенна на DLE-версиях 13.х. Для корректной работы требуется минимальная версия MySQL 5.5.6 или MariaDB 10.0, поскольку используются Foreign Key, которые требуют наличие InnoDB.

Для установки достаточно скачать [релиз](https://github.com/Gokujo/dle_api/releases).
Для установки достаточно скачать [релиз](https://github.com/Gokujo/dle_api/releases/latest).
Документация к API находится на сервере [POSTMAN](https://documenter.getpostman.com/view/7856564/SW7T9BsW). На данный момент она не полная и пополняется медлено, но верно.
Релизы выше только для версий DLE 13 и выше.

Для пожеланий можно использовать [feathub](https://feathub.com/Gokujo/dle_api).
[![Feature Requests](https://feathub.com/Gokujo/dle_api?format=svg)](https://feathub.com/Gokujo/dle_api)


# DLE >= 13.x
Скачайте релиз. У вас три варианта для установки:
1. **При помощи bat-Скрипта. Для пользователей Windows**
Expand All @@ -30,4 +32,56 @@
Затем устанавливаем архив через менеджер плагинов.

1. **Просто залить**
Залейте папку **engine** в корень сайта и установите плагин через менеджер плагинов.
Залейте папку **engine** в корень сайта и установите плагин через менеджер плагинов.



# DLE < 13
В теории, и на движках младше всё должно работать, поскольку в процессе не затрагиваются файлы движка. Но, это не точно, я не пробовал, не эксперементировал. На свой страх и риск.

## Установка
Залить папки **api** и **engine** из папки **upload** в корень сайта. Затем выполнить запрос в базу данных:

```SQL
CREATE TABLE {prefix}_api_keys (
id int auto_increment
primary key,
api varchar(255) not null,
is_admin tinyint(1) default 0 not null,
creator int default 0 null,
created datetime default CURRENT_TIMESTAMP not null,
active tinyint(1) default 0 not null,
user_id int default 0 not null,
constraint {prefix}_api_keys_key_uindex
unique (api)
);

create table {prefix}_api_scope (
scope_id int auto_increment
primary key,
`table` varchar(255) null,
`read` tinyint(1) default 0 not null,
`write` tinyint(1) default 0 not null,
`delete` tinyint(1) default 0 not null,
key_id int default 0 not null,
constraint {prefix}_api_scope_{prefix}_api_keys_id_fk
foreign key (key_id) references {prefix}_api_keys (id)
on update cascade on delete cascade
);

INSERT INTO {prefix}_admin_sections (name, title, descr, icon, allow_groups) VALUES ('dleapi', 'DLE-API', 'Неофициальное API для DLE. Раздел по созданию и управлению над ключами доступа к API.', '/engine/skins/images/icons/dleapi.png', 1);
```


## Удаление
Удаляем **из корня** сайта папку **api**, a так-же из папки **engine/inc** файл **dleapi.php** и из **engine/skins/images** файл **dleapi.png**.

Выполняем запрос в базу данных:


```SQL
DELETE FROM {prefix}_admin_sections WHERE `name` = 'dleapi';
DROP TABLE {prefix}_api_keys cascade, {prefix}_api_scope cascade;
```

**{prefix}** заменяем на свой префикс базы данных.
4 changes: 2 additions & 2 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "1.0.1",
"version": "0.1.3",
"name": "DLE API"
}
}
12 changes: 6 additions & 6 deletions upload/api/composer.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"config": {
"platform": {
"php": "5.6.19"
}
},
"require": {
"ext-json": "*",
"slim/slim": "*",
"slim/slim": "^3.12",
"monolog/monolog": "*",
"ext-pdo": "*"
},
"config": {
"platform": {
"php": "5.6"
}
}
}
4 changes: 2 additions & 2 deletions upload/api/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion upload/api/includes/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public function __construct ($module, $id = '', $data = '', $app = 'full', $path
/**
* @param string $cachePath
*/
public function setCachePath (string $cachePath) {
public function setCachePath ($cachePath) {
$this->cachePath = $cachePath;
}

Expand Down
6 changes: 3 additions & 3 deletions upload/api/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

/**
* @author Maxim Harder <dev@devcraft.club>
* @copyright 2019 DevCraft.club
* @copyright 2019-2021 DevCraft.club
*
* Приложение должно заменить стандартный API самого DLE и предоставить альтернативный вариант.
* Использовать на свой страх и риск!
Expand All @@ -26,6 +26,7 @@
require_once ENGINE_DIR.'/classes/plugins.class.php';

include_once DLEPlugins::Check(API_DIR.'/includes/functions.php');
include_once DLEPlugins::Check(ENGINE_DIR.'/inc/includes/functions.inc.php');

$config = [
'settings' => [
Expand All @@ -41,6 +42,5 @@

// Подключаем файл-роутер и запускаем главную функцию
include_once DLEPlugins::Check(API_DIR.'/routes/_router.php');


?>
?>
3 changes: 2 additions & 1 deletion upload/api/routes/_router.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
return $logger;
};


$app->group('/v1', function (App $app) use ($connect) {
include_once (DLEPlugins::Check(API_DIR . '/routes/admin_logs.php'));
include_once (DLEPlugins::Check(API_DIR . '/routes/admin_sections.php'));
Expand Down Expand Up @@ -74,4 +75,4 @@
// Own path add
});

$app->run();
$app->run();
8 changes: 7 additions & 1 deletion upload/api/routes/admin_logs.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Psr\Http\Message\ServerRequestInterface as Request;

$api_name = "admin_logs";

$possibleData = array(
array(
'name' => 'id',
Expand Down Expand Up @@ -64,6 +65,7 @@
// );
// possibleData Add );


$app->group('/' . $api_name, function ( ) use ( $connect, $api_name, $possibleData ) {
$header = array();
$access = array(
Expand All @@ -73,14 +75,17 @@
'can_delete' => false,
);


$this->get('[/]', function (Request $request, Response $response, Array $args) use ($possibleData, $api_name, $connect, $header, $access ) {
foreach ( $request->getHeaders() as $name => $value ) {
$name = strtolower(str_replace('HTTP_', '', $name));
$header[$name] = $value[0];
}

$checkAccess = checkAPI($header['x_api_key'], $api_name);
if (isset($checkAccess['error'])) return $response->withStatus(400)->getBody()->write(json_encode(array('error' => $checkAccess['error'])));
if (isset($checkAccess['error'])) {
return $response->withStatus(400)->getBody()->write(json_encode(array('error' => $checkAccess['error'])));
}

$access['full'] = $checkAccess['admin'];
$access['can_read'] = $checkAccess['read'];
Expand Down Expand Up @@ -112,6 +117,7 @@
} else
$data = json_decode($getData->get(), true);


$response->withStatus( 200 )->getBody()->write( json_encode( $data ) );

} else {
Expand Down
1 change: 1 addition & 0 deletions upload/api/routes/comments.php
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@

$sql = 'DELETE FROM '. PREFIX . "_{$api_name} WHERE id = {$id}";
$connect->query( $sql );
deletecomments($id);

$cache = new CacheSystem($api_name, $sql);
$cache->clear($api_name);
Expand Down
2 changes: 2 additions & 0 deletions upload/api/routes/post.php
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,8 @@

$sql = 'DELETE FROM '. PREFIX . "_{$api_name} WHERE id = {$id}";
$connect->query( $sql );
deletenewsbyid($id);
deletecommentsbynewsid($id);

$cache = new CacheSystem($api_name, $sql);
$cache->clear($api_name);
Expand Down
12 changes: 6 additions & 6 deletions upload/api/vendor/composer/InstalledVersions.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ class InstalledVersions
private static $installed = array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'aliases' =>
array (
),
'reference' => '4753cb6bc670bb60bbf409046c37571a4efa8304',
'reference' => '9e1c17f28a7703c5f3abb7577844728a67f21d4c',
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'aliases' =>
array (
),
'reference' => '4753cb6bc670bb60bbf409046c37571a4efa8304',
'reference' => '9e1c17f28a7703c5f3abb7577844728a67f21d4c',
),
'monolog/monolog' =>
array (
Expand Down
8 changes: 8 additions & 0 deletions upload/api/vendor/composer/installed.json
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,10 @@
"container",
"dependency injection"
],
"support": {
"issues": "https://github.com/silexphp/Pimple/issues",
"source": "https://github.com/silexphp/Pimple/tree/master"
},
"install-path": "../pimple/pimple"
},
{
Expand Down Expand Up @@ -241,6 +245,10 @@
"container-interop",
"psr"
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/master"
},
"install-path": "../psr/container"
},
{
Expand Down
12 changes: 6 additions & 6 deletions upload/api/vendor/composer/installed.php
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<?php return array (
'root' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'aliases' =>
array (
),
'reference' => '4753cb6bc670bb60bbf409046c37571a4efa8304',
'reference' => '9e1c17f28a7703c5f3abb7577844728a67f21d4c',
'name' => '__root__',
),
'versions' =>
array (
'__root__' =>
array (
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'aliases' =>
array (
),
'reference' => '4753cb6bc670bb60bbf409046c37571a4efa8304',
'reference' => '9e1c17f28a7703c5f3abb7577844728a67f21d4c',
),
'monolog/monolog' =>
array (
Expand Down
61 changes: 51 additions & 10 deletions Прочти меня.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,57 @@
DLE-API
Модификация для админпанели и глобальные функции для моих разработок Совместимость проверенна на DLE-версиях 13.х

Для установки достаточно скачать релиз. Релизы выше только для версий DLE 13 и выше.

Хотите что-то увидеть в следующем релизе? Тогда вам сюда: https://feathub.com/Gokujo/dle_api
Документация по API (не полная): https://documenter.getpostman.com/view/7856564/SW7T9BsW
DLE API
Модификация для админпанели и глобальные функции для моих разработок Совместимость проверенна на DLE-версиях 13.х. Для корректной работы требуется минимальная версия MySQL 5.5.6 или MariaDB 10.0, поскольку используются Foreign Key, которые требуют наличие InnoDB.
Для установки достаточно скачать релиз (https://github.com/Gokujo/dle_api/releases/latest).
Документация к API находится на сервере POSTMAN (https://documenter.getpostman.com/view/7856564/SW7T9BsW).
На данный момент она не полная и пополняется медлено, но верно. Релизы выше только для версий DLE 13 и выше.
Для пожеланий можно использовать feathub (https://feathub.com/Gokujo/dle_api)).

DLE >= 13.x
Скачайте релиз. У вас три варианта для установки:

При помощи bat-Скрипта. Для пользователей Windows Для этого устанавливаем 7Zip. После установки запускаем скрипт install_archive.bat. После завершения установки - загружаем maharder_assets.zip в менеджер плагинов.
1. При помощи bat-Скрипта. Для пользователей Windows Для этого устанавливаем 7Zip (https://www.7-zip.org/download.html). После установки запускаем скрипт install_archive.bat. После завершения установки - загружаем install.zip в менеджер плагинов.
2. Упаковать самому Любым архиватором запаковать всё содержимое в папке upload, причём так, чтобы в корне архива был файл install.xml и папка engine. Затем устанавливаем архив через менеджер плагинов.
3. Просто залить Залейте папку engine в корень сайта и установите плагин через менеджер плагинов.

DLE < 13
В теории, и на движках младше всё должно работать, поскольку в процессе не затрагиваются файлы движка. Но, это не точно, я не пробовал, не эксперементировал. На свой страх и риск.

Установка
Залить папки api и engine из папки upload в корень сайта. Затем выполнить запрос в базу данных:

CREATE TABLE {prefix}_api_keys (
id int auto_increment
primary key,
api varchar(255) not null,
is_admin tinyint(1) default 0 not null,
creator int default 0 null,
created datetime default CURRENT_TIMESTAMP not null,
active tinyint(1) default 0 not null,
user_id int default 0 not null,
constraint {prefix}_api_keys_key_uindex
unique (api)
);

create table {prefix}_api_scope (
scope_id int auto_increment
primary key,
`table` varchar(255) null,
`read` tinyint(1) default 0 not null,
`write` tinyint(1) default 0 not null,
`delete` tinyint(1) default 0 not null,
key_id int default 0 not null,
constraint {prefix}_api_scope_{prefix}_api_keys_id_fk
foreign key (key_id) references {prefix}_api_keys (id)
on update cascade on delete cascade
);

INSERT INTO {prefix}_admin_sections (name, title, descr, icon, allow_groups) VALUES ('dleapi', 'DLE-API', 'Неофициальное API для DLE. Раздел по созданию и управлению над ключами доступа к API.', '/engine/skins/images/icons/dleapi.png', 1);


Удаление
Удаляем из корня сайта папку api, a так-же из папки engine/inc файл dleapi.php и из engine/skins/images файл dleapi.png.

Упаковать самому Любым архиватором запаковать всё содержимое в папке upload, причём так, чтобы в корне архива был файл install.xml и папка engine. Затем устанавливаем архив через менеджер плагинов.
Выполняем запрос в базу данных:

Просто залить Залейте папку engine в корень сайта и установите плагин через менеджер плагинов.
DELETE FROM {prefix}_admin_sections WHERE `name` = 'dleapi';
DROP TABLE {prefix}_api_keys cascade, {prefix}_api_scope cascade;
{prefix} заменяем на свой префикс базы данных.

0 comments on commit d464fee

Please sign in to comment.