Azami: ну значит нужно условие поменять соответствующим образом :) Что-то типа того (можно «подсушить», но лень).
if ($_SERVER['REQUEST_URI'] == '/') {
if ($user->is_logged) {
$this->widgets('left-menu-main');
}
} elseif ($user->is_logged) {
$this->widgets('left-menu-main');
}
Что-то из этой серии.
if ($_SERVER['REQUEST_URI'] == '/') {
if ($user->is_logged) {
$this->widgets('left-menu-main');
}
}
То бишь он будет показываться, если запрашивают главную страницу и если пользователь авторизован.
John: вроде как с седьмой версии PHP старая форма, когда название метода совпадает с названием класса, больше не будет работать как конструктор, поэтому да, конструктор в классе всегда должен называться __constructor (можете просто переименовать в остальных классах).
Почему не сделали — сложно сказать, я их код не изучал. Скорее всего «по историческим причинам» или в попытках обратной совместимости (тогда бы вместо public/protected/private в названиях свойств было бы просто var, а имена методов все были бы без области видимости).
John: потому что вы в констуркторе только присваиваете значения и ничего с этим дальше не делаете.
Логика такая:
В Delete.php создаётся экземпляр класса DeleteTarget с каким-то состоянием (установленными ключами и идентификатором). Чтобы произошло удаление, нужно с этим что-то сделать (позвать $del->execDeleteTarget(), например).
Вы можете их передать в констркутор (public function __cunstruct($access_key, $secret_key, $id) { $this->access_key = $access_key; $this->secret_key = $secret_key; $this->id = $id; } ) или использовать сеттеры (public function setId($id) { $this->id = $id; } )
Ещё есть вариант задать переменную среды (мой компьютер/свойства/дополнительно/переменные среды):
LANG=ru_RU.CP1251
Я так думаю, что есть смысл поиграться с разными комбинациями LANG и chcp.
Правда не уверен, что это поможет, раз в консоли при смене кодовой страницы ничего не происходит.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.