1. Go to this page and download the library: Download verstka/php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$verstkaBuilder = new \Verstka\EditorApi\Builder\VerstkaEnvBuilder();
$verstkaEditor = $verstkaBuilder->build();
$sql = 'SELECT * FROM t_materials WHERE name = :name';
$article = static::getDatabase()->fetchOne($sql, ['name' => $material_id]);
$body = $is_mobile ? $article['mobile_html'] : $article['desktop_html'];
$custom_fileds = [
'auth_user' => 'test', //if you have http authorization on callback url
'auth_pw' => 'test', //if you have http authorization on callback url
'fonts.css' => 'https://mydomain.com/static/vms_fonts.css', //if you use custom fonts set
'mobile' => true //if you open mobile version of the post,
'user_id' => 123 //if you want to know the user who opened the editor when saving
];
/// ....
$verstkaEditor = $verstkaBuilder->build();
$materialSaver = new MaterialSaver(); // your saver \Verstka\EditorApi\Material\MaterialSaverInterface
// Prepare data
$data = new \Verstka\EditorApi\Material\MaterialData($arrayData); // Material data from POST
return $verstkaEditor->save($materialSaver, $data);
/// ....
$verstkaEditor = $verstkaBuilder->build();
$materialSaver = new MaterialSaver(); // your saver \Verstka\EditorApi\Material\MaterialSaverInterface
// Prepare data
$data = new \Verstka\EditorApi\Material\MaterialData($arrayData); // Material data from POST
return $verstkaEditor->save(function(array|\Verstka\EditorApi\Material\MaterialDataInterface $data): bool
{
$is_fail = false;
$article_body = $data['article_body'];
$article_static_dir_rel = sprintf('/upload/verstka/%s%s', $data['is_mobile'] ? 'm_':'', $data['material_id']);
$article_static_dir_abs = sprintf('%s%s%s%s', WEBROOT, DIRECTORY_SEPARATOR, '/public/', $article_static_dir_rel);
@mkdir($article_static_dir_abs, 0777, true);
foreach ($data['images'] as $image_name => $imageTmpFilePath) {
$is_renamed = rename($imageTmpFilePath, sprintf('%s/%s', $article_static_dir_abs, $image_name));
$is_fail = $is_fail || !$is_renamed;
$html_image_name_old = sprintf('/vms_images/%s', $image_name);
$html_image_name_new = sprintf('%s/%s', $article_static_dir_rel, $image_name);
if ($is_renamed) {
$article_body = str_replace($html_image_name_old, $html_image_name_new, $article_body);
}
}
if ($is_fail) {
return false; //tell editor that save goes wrong
}
if ($data['is_mobile']) {
$sql = 'update t_materials set mobile_html = :article_body where name = :name;';
} else {
$sql = 'update t_materials set desktop_html = :article_body where name = :name;';
}
$db = Plugin::getDatabase();
$saved = (bool)$db->fetchAffected($sql, ['article_body' => $article_body, 'name' => $data['material_id']]);
$is_fail = $is_fail || !$saved;
return !$is_fail;
}, $data);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.