Skip to content

Commit

Permalink
update bootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
ghost committed Sep 24, 2023
1 parent d949474 commit 5a3ac70
Show file tree
Hide file tree
Showing 8 changed files with 356 additions and 60 deletions.
16 changes: 2 additions & 14 deletions src/app/controller/module/footer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,9 @@ class AppControllerModuleFooter
{
public function render()
{
$response['trackers'] = [];
$trackers = Environment::config('trackers');

if ($trackers = json_decode(file_get_contents(__DIR__ . '/../../../config/trackers.json')))
{
foreach ($trackers as $tracker)
{
if (!empty($tracker->announce) && !empty($tracker->stats))
{
$response['trackers'][] = [
'announce' => $tracker->announce,
'stats' => $tracker->stats,
];
}
}
}
$api = Environment::config('website')->api->export;

include __DIR__ . '../../../view/theme/default/module/footer.phtml';
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/controller/module/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public function render()
$name = str_replace(
'YGG',
'<span>YGG</span>',
WEBSITE_NAME
Environment::config('website')->name
);

require_once __DIR__ . '/search.php';
Expand Down
209 changes: 209 additions & 0 deletions src/app/controller/page.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
<?php

class AppControllerPage
{
private $_database;
private $_validator;

private $_user;

public function __construct()
{
require_once __DIR__ . '/../model/database.php';

$this->_database = new AppModelDatabase(
Environment::config('database')
);

require_once __DIR__ . '/../model/validator.php';

$this->_validator = new AppModelValidator(
Environment::config('validator')
);

require_once __DIR__ . '/user.php';

$this->_user = new AppControllerUser(
$_SERVER['REMOTE_ADDR']
);
}

private function _response(string $title, string $h1, string $text, int $code = 200)
{
require_once __DIR__ . '/response.php';

$appControllerResponse = new AppControllerResponse(
$title,
$h1,
$text,
$code
);

$appControllerResponse->render();

exit;
}

public function renderFormDescription()
{
// Init form
$form = (object)
[
'title' => (object)
[
'error' => [],
'attribute' => (object)
[
'value' => null,
'required' => $this->_validator->getPageTitleRequired(),
'minlength' => $this->_validator->getPageTitleLengthMin(),
'maxlength' => $this->_validator->getPageTitleLengthMax(),
'placeholder' => sprintf(
_('Page subject (%s-%s chars)'),
number_format($this->_validator->getPageTitleLengthMin()),
number_format($this->_validator->getPageTitleLengthMax())
),
]
],
'description' => (object)
[
'error' => [],
'attribute' => (object)
[
'value' => null,
'required' => $this->_validator->getPageDescriptionRequired(),
'minlength' => $this->_validator->getPageDescriptionLengthMin(),
'maxlength' => $this->_validator->getPageDescriptionLengthMax(),
'placeholder' => sprintf(
_('Page description text (%s-%s chars)'),
number_format($this->_validator->getPageDescriptionLengthMin()),
number_format($this->_validator->getPageDescriptionLengthMax())
),
]
],
'keywords' => (object)
[
'error' => [],
'attribute' => (object)
[
'value' => null,
'required' => $this->_validator->getPageKeywordsRequired(),
'placeholder' => sprintf(
_('Page keywords (%s-%s total / %s-%s chars per item)'),
number_format($this->_validator->getPageKeywordsQuantityMin()),
number_format($this->_validator->getPageKeywordsQuantityMax()),
number_format($this->_validator->getPageKeywordLengthMin()),
number_format($this->_validator->getPageKeywordLengthMax())
),
]
],
'sensitive' => (object)
[
'error' => [],
'attribute' => (object)
[
'value' => null,
'placeholder' => _('Apply NSFW filters for this publication'),
]
]
];

// Submit request
if (isset($_POST))
{
if (isset($_POST['title']))
{
$error = [];

if (!$this->_validator->pageTitle($_POST['title'], $error))
{
$form->title->error[] = $error;
}

// @TODO check for page duplicates

$form->title->attribute->value = htmlentities($_POST['title']);
}

if (isset($_POST['description']))
{
$error = [];

if (!$this->_validator->pageDescription($_POST['description'], $error))
{
$form->description->error[] = $error;
}

$form->description->attribute->value = htmlentities($_POST['description']);
}

if (isset($_POST['keywords']))
{
$error = [];

if (!$this->_validator->pageKeywords($_POST['keywords'], $error))
{
$form->keywords->error[] = $error;
}

$form->keywords->attribute->value = htmlentities($_POST['keywords']);
}

if (isset($_POST['sensitive']))
{
$form->sensitive->attribute->value = (bool) $_POST['sensitive'];
}

// Request valid
if (empty($error))
{
// @TODO redirect
}
}

// Render template
require_once __DIR__ . '/module/head.php';

$appControllerModuleHead = new AppControllerModuleHead(
Environment::config('website')->url,
sprintf(
_('Submit - %s'),
Environment::config('website')->name
),
[
[
'rel' => 'stylesheet',
'type' => 'text/css',
'href' => sprintf(
'assets/theme/default/css/common.css?%s',
CSS_VERSION
),
],
[
'rel' => 'stylesheet',
'type' => 'text/css',
'href' => sprintf(
'assets/theme/default/css/framework.css?%s',
CSS_VERSION
),
],
]
);

require_once __DIR__ . '/module/profile.php';

$appControllerModuleProfile = new AppControllerModuleProfile(
$this->_user
);

require_once __DIR__ . '/module/header.php';

$appControllerModuleHeader = new AppControllerModuleHeader();

require_once __DIR__ . '/module/footer.php';

$appControllerModuleFooter = new AppControllerModuleFooter();

include __DIR__ . '../../view/theme/default/page/form/description.phtml';
}
}
54 changes: 25 additions & 29 deletions src/app/controller/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,33 @@
class AppControllerUser
{
private $_database;
private $_validator;

private $_user;

public function __construct(string $address)
{
// Connect DB
require_once __DIR__ . '/../model/database.php';

try
{
$this->_database = new AppModelDatabase(
DB_HOST,
DB_PORT,
DB_NAME,
DB_USERNAME,
DB_PASSWORD
);
}
$this->_database = new AppModelDatabase(
Environment::config('database')
);

catch (Exception $error)
{
$this->_response(
sprintf(
_('Error - %s'),
WEBSITE_NAME
),
_('500'),
print_r($error, true),
500
);
}
require_once __DIR__ . '/../model/validator.php';

// Validate user address
require_once __DIR__ . '/../../library/valid.php';
$this->_validator = new AppModelValidator(
Environment::config('validator')
);

// Validate address
$error = [];
if (!Valid::host($address, $error))

if (!$this->_validator->host($address, $error))
{
$this->_response(
sprintf(
_('Error - %s'),
WEBSITE_NAME
Environment::config('website')->name
),
_('406'),
print_r($error, true),
Expand All @@ -60,7 +45,7 @@ public function __construct(string $address)
$this->_user = $this->_database->getUser(
$this->_database->initUserId(
$address,
USER_DEFAULT_APPROVED,
Environment::config('website')->default->user->approved,
time()
)
);
Expand All @@ -75,13 +60,24 @@ public function __construct(string $address)
$this->_response(
sprintf(
_('Error - %s'),
WEBSITE_NAME
Environment::config('website')->name
),
_('500'),
print_r($error, true),
500
);
}

// Require account type selection
if (is_null($this->getPublic()))
{
header(
sprintf(
'Location: %s/welcome',
trim($this->_config->url, '/')
)
);
}
}

private function _response(string $title, string $h1, string $text, int $code = 200)
Expand Down
2 changes: 1 addition & 1 deletion src/app/view/theme/default/module/footer.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<a href="node"><?php echo _('Node') ?></a>
|
<a rel="nofollow" href="rss"><?php echo _('RSS') ?></a>
<?php if (API_EXPORT_ENABLED) { ?>
<?php if ($api) { ?>
|
<a rel="nofollow" href="api/manifest.json"><?php echo _('API') ?></a>
<?php } ?>
Expand Down
2 changes: 1 addition & 1 deletion src/app/view/theme/default/module/profile.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@
</span>
</a>
<?php } ?>
<?php if ($route == 'submit') { ?>
<?php if ($route == 'page/form') { ?>
<span class="padding-x-16 padding-y-8 display-block background-color-green cursor-default text-color-white">
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" fill="currentColor" class="bi bi-plus-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v3h-3a.5.5 0 0 0 0 1h3v3a.5.5 0 0 0 1 0v-3h3a.5.5 0 0 0 0-1h-3v-3z"/>
Expand Down
Loading

0 comments on commit 5a3ac70

Please sign in to comment.