Страница 1 из 1

Как передать данные переменной в другой файл?

СообщениеДобавлено: 18 сен 2018, 15:22
vanred79
Здравтствуйте! Установил в папку /js epub ридер для книг, но не могу понять как передать данные переменной $model->cost, которая находится в файле /protected/modules/catalog/views/view.php в файл /js/epubjs/reader/index.html.
В файле /js/epubjs/reader/index.html есть такой код:
Код: Выделить всё
<script>
            
"use strict";

            
document.onreadystatechange = function () {
              if (
document.readyState == "complete") {
                
window.reader ePubReader("/books/menin_atim_koja.epub", {
                   
restoretrue
                 
});
              }
            };

        
</script>

В переменной $model->cost я задал урл книги и хотелось бы, чтобы он автоматически вставлялся вместо /books/menin_atim_koja.epub.
Может можно как то по другому решить такую задачу? Подскажите пожалуйста.

Нужно при клике по ссылке Читать для каждой книги открывать свой epub файл

Re: Как передать данные переменной в другой файл?

СообщениеДобавлено: 18 сен 2018, 15:26
Xpycm
Как передавать значения переменных в функции, ровно как и программированию учат в специальных учебных заведениях.
Либо можно на дому:
https://www.google.com/search?q=учебник+по+php
https://www.google.com/search?q=учебник+по+yii

Re: Как передать данные переменной в другой файл?

СообщениеДобавлено: 18 сен 2018, 16:45
vanred79
Здравствуйте Хруст!
Попробовал метод, который вы ранее рекомендовали:
- создал переменную public $epuburl в контроллере /protected/components/Controller.php
- затем в файл /protected/modules/catalog/views/view.php вставил код
Код: Выделить всё
Yii::app()->controller->epuburl $model->cost

- затем хотел использовать переменную в php файле в корне сайта, используя следующий код
Код: Выделить всё
$urlbook Yii::app()->controller->epuburl;
echo 
"var bookurl=".$urlbook.";"

но результат не вышел.
Вышестоящий код работает только между файлами view?
Второй вопрос этот код только для ORE или в этом движке он тоже должен работать?

Re: Как передать данные переменной в другой файл?

СообщениеДобавлено: 18 сен 2018, 17:20
Xpycm
Если я правильно понял, то библиотека эта https://github.com/futurepress/epubjs-reader
В /js/epubjs/reader/index.html вообще ничего не надо передавать. Это демонстрационный файл.

Нужно при клике открывать новую страницу в модальном окне или просто новую вкладку, это не важно, со ссылкой, например: http://example.com/catalog/read/тут_значение_из_model->cost
В правилах построения ЧПУ сделать так, чтобы такие страницы ссылались на catalog/main/read. Добавить контроллер ReadController.php и в нём описать обработку. А именно открытие файла отображения (view) и в этом представлении уже вставлять js, в котором вместо https://s3.amazonaws.com/moby-dick/ будет ваша ссылка
Код: Выделить всё
document.onreadystatechange = function () {
  if (
document.readyState == "complete") {
    
window.reader ePubReader("https://s3.amazonaws.com/moby-dick/", {
       
restoretrue
     
});
  }
}; 

Re: Как передать данные переменной в другой файл?

СообщениеДобавлено: 19 сен 2018, 13:59
vanred79
Хруст спасибо за ответ! Задачу решил