<?php
/**
* Implements hook_load_includes().
*
* @param Environment $env
* The Environment.
* @param $vars
* An array of variables.
*/
function form_load_includes($env, $vars) {
$module_path = $env->getModulePath('form');
$env->addInclude($module_path . '/css/form.css');
$env->addInclude($module_path . '/js/form.js');
$env->addInclude($module_path . '/addons/autocomplete/easy-autocomplete.min.css');
$env->addInclude($module_path . '/addons/autocomplete/easy-autocomplete.themes.min.css');
$env->addInclude($module_path . '/addons/autocomplete/jquery.easy-autocomplete.min.js');
}
/**
* Implements hook_form_validate();
* Check that required fields are met, and other stuff.
*
* @param Environment $env
* The Environment.
* @param $vars
* An array of variables.
*/
function form_form_validate($env, $vars) {
/** @var Form $form */
$form = &$vars['form'];
foreach ($form->getItems() as $k => $item) {
// Check if the item is required.
/** @var FormItem $item */
if ($item->isRequired() && (empty($_REQUEST[$item->getName()]) || trim($_REQUEST[$item->getName()]) == '')) {
$form->validationError($item, 'This item is required!');
}
$item->validate();
}
}
/**
* Implements hook_boot().
* TODO: refactor the whole.
*
* @param Environment $env
* The Environment.
* @param $vars
* An array of variables.
*/
function form_boot($env, $vars) {
// TODO: object oriented, using templates, etc. etc.
if ($env->getRequestedPath() == 'autocomplete') {
$autocomplete_results = search($env, $_GET['search_string'], NodeFactory::load($env, $_GET['search_node']), array('title'), SEARCH_OUTPUT_MATCH);
header("Content-type: application/json");
$results = array();
foreach ($autocomplete_results as $autocomplete_result) {
$node = NodeFactory::loadFromRealPath($env, explode(':', $autocomplete_result)[0]);
// TODO: check user access.
if (TRUE) {
$results[] = array(
'name' => $node->getName(),
'title' => $node->getTitle(),
);
}
}
print json_encode($results);
die();
}
}
|