public function render()
{
$args = $this->arguments;
PhpQuery::newDocument();
$this->markup = PhpQuery::pq($this->template);
$label = $this->markup['label'];
$select = $this->markup['select'];
// label
if (isset($args['label'])) {
$label->removeClass('hidden')->html($args['label']);
}
// id
if (isset($args['id'])) {
$label->attr('for', $args['id']);
$select->attr('id', $args['id']);
}
// name
if (isset($args['name'])) {
$select->attr('name', $args['name']);
}
$menus = XeMenu::getAll(XeSite::getCurrentSiteKey());
foreach ($menus as $menu) {
$option = PhpQuery::pq('<option></option>');
$option->appendTo($select)->attr('value', $menu->id)->html($menu->title);
if (isset($args['selected']) && $menu->id == $args['selected']) {
$option->attr('selected', 'selected');
} elseif (isset($args['value']) && $menu->id == $args['value']) {
$option->attr('selected', 'selected');
}
}
return parent::render();
}