Создание модуля на основе ajax

Тема в разделе "Создание расширений для Joomla", создана пользователем alexey_samara, 20.11.2010.

  1. Offline

    alexey_samara Недавно здесь

    Регистрация:
    20.11.2010
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте! У меня серьезный вопрос в Вам :)

    Мне необходимо сделать модуль, который позволял бы выводить данные о товарах из virtuemart - десятка популярных, новые, рекомендуемые товары. причем все это отображать в виде вкладок и каждая вкладка подгружалась бы ajax'ом.

    Вот у меня есть модуль для вывода десятки популярных. Содержимое его единственного файла (не считая xml, конечно :)

    Код (PHP):
    1. <?
    2. defined('_JEXEC') or die('Restricted access');
    3.  
    4. global $mosConfig_absolute_path, $sess;
    5.  
    6. // Load the virtuemart main parse code
    7. if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
    8.     require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
    9. } else {
    10.     require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
    11. }
    12.  
    13. $max_items = $params->get( 'max_items', 2 ); //maximum number of items to display
    14. $category_id = $params->get( 'category_id', null ); // Display products from this category only
    15. $display_style = $params->get( 'display_style', "vertical" ); // Display Style
    16. $products_per_row = $params->get( 'products_per_row', 4 ); // Display X products per Row
    17. $show_price = (bool)$params->get( 'show_price', 1 ); // Display the Product Price?
    18. $show_addtocart = (bool)$params->get( 'show_addtocart', 1 ); // Display the "Add-to-Cart" Link?
    19.  
    20. require_once ( CLASSPATH. 'ps_product.php');
    21. $ps_product = new ps_product;
    22. $db = new ps_DB;
    23.  
    24. $num_topsellers = $params->get ('num_topsellers', 10);
    25.  
    26. $list  = "SELECT p.product_sku FROM #__{vm}_product as p WHERE ";
    27. $q = "p.product_publish='Y' AND ";
    28. $q .= "p.product_sales > 0 ";
    29. $q .= "ORDER BY p.product_sales DESC, p.product_name ";
    30. $list .= $q . " LIMIT 0, $num_topsellers ";
    31.  
    32. $db->query($list);
    33. //include_once( dirname(__FILE__).'\mod_virtuemart_topten.php');
    34.    
    35.     //print(dirname(__FILE__).'\mod_virtuemart_topten.php');
    36.  
    37. if( $db->num_rows() > 0 ) {
    38.     $width = intval(100 / intval($db->num_rows()));
    39.    
    40.     ?>
    41.    
    42.     <table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top:-35px;">
    43.     <?php
    44.     $i = 0;
    45.     while($db->next_record() ){
    46.         if ($i%2)
    47.         $sectioncolor = "sectiontableentry2";
    48.         else
    49.         $sectioncolor = "sectiontableentry1";
    50.  
    51.             if( $i == 0 )
    52.             echo "<tr>\n";
    53.             echo "<td width=\"$width%\" align=\"center\">";
    54.             $ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart, $show_desc);
    55.             echo "</td>\n";
    56.             if ( ($i+1) % $products_per_row == 0)
    57.             echo "</tr><tr>\n";
    58.             if( ($i+1) == $max_items )
    59.             echo "</tr>\n";
    60.        
    61.         $i++;
    62.     }
    63. ?>
    64. </table>
    65. ?>


    А вот html-разметка для вывода во вкладках (используется jquery):

    Код (html):
    1. <script type="text/javascript">
    2. $(function(){
    3. $("#tabs").tabs();
    4. });
    5. </script>
    6.     <div id="tabs">
    7. <ul>
    8. <li><a href="#tabs-1">Рекомендуемые</a></li>
    9. <li><a href="#tabs-2">Новинки</a></li>
    10. <li><a href="/modules/mod_top_pop/virtuemart_topten.php">Самые популярные</a></li>
    11. </ul>
    12. <div id="tabs-1">
    13. <p>Tab 1 content</p>
    14. </div>
    15. <div id="tabs-2">
    16. <p>Tab 2 content</p>
    17. </div>
    18. <div id="tabs-3">
    19. <p>Tab 3 content</p>
    20. </div>
    21. </div>


    Ссылка в разметке (
    Код (html):
    1. <a href="/modules/mod_top_pop/virtuemart_topten.php">
    ) с помощью jquery подгружает файл аяксом в третью вкладку.

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

    Разметку я размещаю в файле вхождения модуля джумлы (вроде бы так это говорится :), т.е. в главном файле модуля, подключаю модуль.

    Он отображается на сайте, но при клике на третью вкладку получаю "Restricted access". Помогите, пожалуйста! Ну не могу я понять почему не работает...
     
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    Код (CODE):
    1. href="/modules/mod_top_pop/virtuemart_topten.php"
    вы обращаетесь на прямую к файлу, так не пойдет. необходимо организовать доступ по параметрам ГЕТ/ПОСТ в модуле через index.php
     
  4. Offline

    alexey_samara Недавно здесь

    Регистрация:
    20.11.2010
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    а можно поподробнее? каким образом организовать?
     

Поделиться этой страницей

Загрузка...