Kohana Экшны не подхватывают основной вид контроллера

Lobezki

Новичок
Экшны не подхватывают основной вид контроллера. В контроллере прописаны 4 экшна. 2 экшна имеют отдельный вид, 2 экшна не имеют, а содержат строчку текста. Вид подхватывает только один экшн index.

Ниже прилагаю код контроллера:

PHP:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Auth extends Controller_Template {

   public $template = 'basic';

   public function action_index()
   {   
     $auth = Auth::instance();
     $data = array();
     
     if ($auth->logged_in())
     {
       Controller::redirect($uri ='');
     }
     else
     {
       if (isset ($_POST['btnsubmit']))
       {
         $login = Arr::get($_POST, 'login', '');
         $password = Arr::get($_POST, 'password', '');
         
         if ($auth->login($login, $password))
         {
           $session = Session::instance();
           $auth_redirect = $session->get('auth_redirect','');
           $session->delete('auth_redirect');
           
           HTTP::redirect ($auth_redirect);
         }
         else
         {
           $data["error"] = "";
         }
       }   
     }
     
     $this->template->content = View::factory('authview', $data);
   }
   
   public function action_reg()
   {
     $data = array();
     
     if (isset($_POST['btnsubmit']))
     {
       $email = Arr::get ($_POST, 'email', '');
       $regcodevalue = Arr::get ($_POST, 'regcodevalue', '');
       
       $register = new Model_Register();
       if($register->reg($email, $regcodevalue, 1))
       {
         $data["regok"] = "";
       }
       else
       {
         $data["errors"] = $register->errors;
       }
     }
       
     $this->template->content = View::factory('regview', $data);
   }
   
   public function action_hpass()
   {
     $auth = Auth::instance();
     $this->template->content = $auth->hash_password('admin');
   }
   
   public function action_logout()
   {
     $auth = Auth::instance();
     $auth->logout();
     $this->template->content = "Разлогинились";
   }
} // End Welcome
 
Последнее редактирование:

флоппик

promotor fidei
Команда форума
Партнер клуба
Научись, пожалуйста, пользоваться тегами [ php][/php ] для оформления кода. Читать эту кашу без отступов никому не интересно.
 
  • Like
Реакции: AmdY

AmdY

Пью пиво
Команда форума
@Lobezki и почему ты думаешь, что виноват контроллер, а не вьюха в которой криво прописаны пути к стилям?
 

Lobezki

Новичок
флоппик, ок.
AmdY, потому что у меня есть базовая въюха в кот прописан путь и она работает. А в экшенах просто текст, напр экшн hpass вообще не имеет отдельной въюхи.
 

AmdY

Пью пиво
Команда форума
Lobezki, говорю же, криво прописано. проверь пути в исходном коде страницы.
 

Lobezki

Новичок
Вот код базовго вида:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Библиотека</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body>
    <div id="container">
        <div id="header">
            <h1>Библиотека</h1>
        </div>
        <div id="content">
            <?php echo $content ?>
        </div>
        <div style="clear:both"></div>
        <div id="empty"></div>
    </div>
    <div id="footer">
        <hr>
        <p style="padding-top:5px">2014 &copy;...hnnrbc</p>
    </div>

</body>
</html>
Вот моя иерархия коханы:
Код:
kohana
      www
           application
                  views (здесь лежат виды)
           css (здесь лежит файл стиля)
      logs
Если в строке link href как-угодно менять путь, напр вместо css/style.css пишу /css/style.css или /style.css или / и в прочих других комбинациях, то стиль даже не подхватывает базовый шаблон. Интересно то, что в самом начале всё работало. Я пересмотрел уроки и я ничего нигде не клацнул/изменил что не надо в пути css, как это было изначально.
 
Последнее редактирование:

Lobezki

Новичок
Почитал внимательно лог. Вроде решил проблему, скопировав style.css в апач/дата. Но кто-его знает, может еще где вылезет что не так.
 

Adelf

Administrator
Команда форума
Очевидно же.

href="css/style.css"

А надо href="/css/style.css"
 

Adelf

Administrator
Команда форума
Значит сайт у тебя располагается не в корне домена, а в каталоге. Что не айс.
Значит надо либо подставлять base_url кохановский. Либо переносить в корень :)
 

Lobezki

Новичок
Adelf, согласен, но к сожалению место расположения сайта выбирал не я. И изменить никак не могу. Точнее не позволено. Т.к. это не первый сайт в корне домена.
 

Adelf

Administrator
Команда форума
Lobezki, в этом случае у тебя должен быть прописан base_url в bootstrap.php . Иначе будут неверно генериться ссылки.
И данный base_url доступен по Kohana::$base_url.

Соответсвенно:
PHP:
<link href="<?php echo Kohana::$base_url ?>css/style.css" rel="stylesheet" type="text/css">
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Lobezki, в этом случае у тебя должен быть прописан base_url в bootstrap.php . Иначе будут неверно генериться ссылки.
И данный base_url доступен по Kohana::$base_url.

Соответсвенно:
PHP:
<link href="<?php echo Kohana::$base_url ?>css/style.css" rel="stylesheet" type="text/css">
Кмк, тут лучше <?=Url::site('css/style.css')?> чем дергать базовый урл из свойства. У меня вообще есть отдельный Url::media('') потому что Url::site() я обычно перекрываю для многоязычности
 

Adelf

Administrator
Команда форума
Ага. Для статики лучше отдельным методом делать. Проще будет перенести статику на отдельный домен, когда надумаешь.
 

Lobezki

Новичок
Спасибо всем! Только вот мой сайт должен как-бы находиться в корне главного сайта. Ну напр. главный сайт на серваке http://mainsite.com. А мой сайт должен распологаться http://mainsite.com/kohana. и я делаю не совсем ч.б. сайт. Точнее автоматизированную библиотеку на web-интерфейсе внутри локальной сети. М.б. в будущем перенесут и на просторы всемирной сети. И вообще сайт в апаче прописан как эйлиэс.
 
Последнее редактирование:

Lobezki

Новичок
Появилась новая проблема. Решил не засорять ваш форум и изменил название темы и содержание первого поста на актуальную проблему.
 

Adelf

Administrator
Команда форума
Надо писать save()
И никогда больше не делай так. Создавай новую тему. И если можно верни все назад.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ага. И десяток комментов теперь тут не в тему.
 

Lobezki

Новичок
Adelf, флоппик, прошу прощения. Хотел как лучше, а получилось как всегда. Спасибо еще раз за помощь в устранении траблы.
 
Сверху