Jump to content
Sign in to follow this  
teseych

Как правильно передавать данные из/в модуль из базы (делаю календарь)

Recommended Posts

Искал календарь под себя, чтоб выводил события из базы по датам, не нашел, написал сам.

 

Но сделал это не как модуль, а просто вставил код в темплейт. Теперь хочу сделать модулем и натолкнулся на следующие вопросы:

 

Первый, возможно дурацкий.

 

Сейчас для перехода на год назад и вперед на главной стоит захардкоженая ссылка: <a href="http://studymarket.com.ua/news/calend2.php?year=2014&today=11&month=3">

 

Ajax и Jquery не используются, но вроде при нажатии календарь автоматом апдейтит даты без перегрузки главной страницы (смотреть со страницы http://studymarket.com.ua ). Почему так? :)

 

 

Второй: как сделать правильно так, чтобы при переходе на год назад и вперед брались данные из базы  и не пихать хардкод в какой-то внешний php , которой заливать вместе с модулем, а получать данные как-то правильно через систему модуля/модели.

 

Еще не до конца разобрался, как скажем брать год и месяц из календаря, куда их передавать, в какой скрипт модуля, чтобы тот взял данные из базы и вернул их и заапдейтить сам div календаря с новыми данными. Jquery / Ajax знаю, просто не могу понять механизм передачи данных из базы данных в модули

 

Если что скрипт календаря можно глянуть здесь: http://studymarket.com.ua

 

Спасибо за любую информацию

 

 

Share this post


Link to post
Share on other sites

В календаре ссылки должны быть на модуль который генерирует список "статей" в котором должен быть обработчик этих переменных

Share this post


Link to post
Share on other sites

говоришь

написал сам

потом

Ajax и Jquery не используются...

а оказывается используются, ибо

...но вроде при нажатии календарь автоматом апдейтит даты без перегрузки главной страницы

- - -

кодировку не настроил.

- - -

Второй: как сделать правильно так, чтобы при переходе на год назад и вперед брались данные из базы и не пихать хардкод в какой-то внешний php , которой заливать вместе с модулем, а получать данные как-то правильно через систему модуля/модели.

ниче не понял.

какие данные? в каком формате?

ты распиши подробно - что ты хочешь.

Share this post


Link to post
Share on other sites

говоришь

потом

а оказывается используются, ибо

- - -

кодировку не настроил.

- - -

ниче не понял.

какие данные? в каком формате?

ты распиши подробно - что ты хочешь.

кодировка сейчас не суть, я сделаю без проблем

 

1. Первый вопрос и был задан потому что нет в скрипте ни аякса ни jquery. Код вписан в модуль, модуль включен и вставлен в страницу. Мое мнение что опенкарт как-то переделывает хардкоженые линки модуля так чтобы они грузились в странице, а не делался переход. Возможно через .htaccess . Поэтому и спрашиваю. 

 

2. Основное что мне непонятно: (вопрос к тем, кто писал модули)

 

Сейчас есть так:

 

обычный шаблонный дефолтный модуль

в /template/modul/моймодуль.tpl вписан код, который выдает календарь с днями.

Чтобы перейти на другую дату используется ссылка  http://studymarket.com.ua/news/calend2.php?year=2014&today=11&month=3

то есть используется левый файл, а не так как делается по шаблону, где как-то идет обмен данными между базой данными и модулем

 

мне надо чтобы в выданном модуле календаря на страницу

 

1. При нажатии вперед/назад запускался аяксовый обработчик (это я сделаю)

2. На какой-то файл передавались данные с годом, месяцем и данными (как это сделать по правильному в разработке модуля)

 

    ВОПРОС: куда передавать данные (где по правильному должен лежать этот файл, который по $_GET[] запросу возьмет информацию из базы, обработает и выдаст результат? как я понимаю левые файлы при разработке модулей не приветствуются, все надо делать через     обработчики и модели. Вот с этим я не разобрался поэтому и спрашиваю. Информации как таковой не смог найти для того что мне надо

 

3. Брались данные и этот <div> календаря  с новыми датами в календаре обновлялся (это тоже я сделаю)

Share this post


Link to post
Share on other sites

Смотреть сюда:

            $this->children        = array(
                'common/column_left',
                'common/column_right',
                'common/content_top',
                'common/content_bottom',
                'common/footer',
                'common/header'
            );

Share this post


Link to post
Share on other sites
var url = 'index.php?route=module/my_module/MyFunction';

$.ajax({
      url: url,
      type: 'GET',
      data: $('.datapicker').datepicker('getDate'),
      dataType: 'json',
      success: function(msg){
         alert(msg['you_callback']);
      }
   }
);

как то так, контроллер же модуля по адресу: catalog/controller/module/my_module.php должен содержать в себе public MyFunction который и будет обрабатывать $_GET параметры (где по правильному должен лежать этот файл, который по $_GET[] запросу возьмет информацию из базы, обработает и выдаст результат?)

Share this post


Link to post
Share on other sites

Вроде понял. 

 

Сделал в /catalog/controller/module/myModul.php функцию

 

public function MyFunction() {
       print "test";
return TRUE;
}
 
 
открывается слово test
 
Не могу понять такую проблему. В /catalog/view/theme/bigshop/template/module/myModul.tpl сделал тестовую ссылку
 
   <a id="test">test</a>
 
и делаю jquery запрос

  <script>
 $(function(){
$('#test').click(function(){
    alert('Before load');
 $.get( "http://studymarket.com.ua/index.php?route=module/myModul/MyFunction", function( data ) {
  alert( "Load was performed." );
});
});
  });
</script>
 
И проблема в том, что именно эту ссылку с http://studymarket.com.ua/index.php?route=module/myModul/MyFunction  оно не грузит, (не выдается "Load was performed."), а любую другую, например просто http://studymarket.com.ua грузит. В чем здесь фокус?

Share this post


Link to post
Share on other sites

решил через .load

$("#test1").load("http://studymarket.com.ua/index.php?route=module/myModul/MyFunction", {parameters: 25}, function(data){
   $("#test1").append(data);
});

Но все равно не понятно почему при .get  получается 500 (Internal Server Error)

Share this post


Link to post
Share on other sites

при load то же самое было (тестил из консоли перед тем, как написать про 500).

так ты ошибки поднимай из логов и устраняй - чего гадать зря?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.