for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace GeminiLabs\SiteReviews\Modules\Html;
use GeminiLabs\SiteReviews\Database\DefaultsManager;
use GeminiLabs\SiteReviews\Helper;
use GeminiLabs\SiteReviews\Modules\Html\Field;
use GeminiLabs\SiteReviews\Modules\Html\Template;
class Form
{
/**
* @param string $id
* @return void
*/
public function renderFields( $id )
$fields = $this->getSettingFields( $this->normalizeSettingPath( $id ));
$rows = '';
foreach( $fields as $name => $field ) {
$field = wp_parse_args( $field, ['name' => $name] );
$rows.= (new Field( $field ))->build();
}
glsr( Template::class )->render( 'pages/settings/'.$id, [
'context' => [
'rows' => $rows,
],
]);
* @return array
protected function getSettingFields( $path )
$settings = glsr( DefaultsManager::class )->settings();
return array_filter( $settings, function( $key ) use( $path ) {
return glsr( Helper::class )->startsWith( $path, $key );
}, ARRAY_FILTER_USE_KEY );
* @return string
protected function normalizeSettingPath( $path )
return glsr( Helper::class )->prefixString( rtrim( $path, '.' ), 'settings.' );