/** * Gets a value of a specified entry at the current menu. * * @param int|string|null $number A number identifying the entry you're * targeting. Can also be an ID or (in some menus) name. For menus where * there are no entries (e.g. "/system identity"), you can specify NULL. * @param string $value_name The name of the value you want to get. * * @return string|null|bool The value of the specified property. If the * property is not set, NULL will be returned. If no such entry exists, * FALSE will be returned. */ public function get($number, $value_name) { if (is_int($number) || (string) $number === (string) (int) $number) { $this->find(); if (isset($this->idCache[(int) $number])) { $number = $this->idCache[(int) $number]; } else { return false; } } $request = new Request($this->menu . '/print'); if (null !== $number) { $number = (string) $number; $request->setQuery(Query::where('.id', $number)->orWhere('name', $number)); } $request->setArgument('.proplist', $value_name); $responses = $this->client->sendSync($request)->getAllOfType(Response::TYPE_DATA); if (0 === count($responses)) { return false; } return $responses->getArgument($value_name); }