PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 9
OgecuT Отправлено: 29 Декабря, 2014 - 10:15:36 • Тема: нужно каждые 2 итерации цикла обвернуть в div • Форум: Вопросы новичков

Ответов: 6
Просмотров: 713
skiphog пишет:
Попробуйте в коде от RickMan, поменять 8 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i % 2){ echo "</div>"; } ?>

Потому, что закрывать див нужно только после нечетного элемента.
По той же причине замените 12 строку на
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($i_wrapper % 2){ echo "</div>"; } ?>


Спасибо ребят. Очень помогли. пока не могу сказать спасибо.
OgecuT Отправлено: 26 Декабря, 2014 - 21:21:02 • Тема: нужно каждые 2 итерации цикла обвернуть в div • Форум: Вопросы новичков

Ответов: 6
Просмотров: 713
[quote=RickMan][/quote]

спасибо. но так я уже делал... этот код обарачивает каждый второй элемент в div а не 2 в месте(((
OgecuT Отправлено: 26 Декабря, 2014 - 16:21:52 • Тема: нужно каждые 2 итерации цикла обвернуть в div • Форум: Вопросы новичков

Ответов: 6
Просмотров: 713
RickMan пишет:
Перед итерациями создайте переменную $i, в каждой итерации увеличивайте переменную на 1. Ну а сам код обварачивания сделайте примерно так:
PHP:
скопировать код в буфер обмена
  1. if (!($i % 2)){ echo "<div class="wrap">"; }

Ну и закрытие тега так же.

http://www.php.su/learnphp/operators/?arith - тут почитайте про %


извините можите показать на примере этого кода как это сделать

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <?php foreach ($rows as $id => $row): ?>
  4. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  5.     <?php print $row;?>
  6. </div>
  7. <?php endforeach; ?>
  8.  


так что бы каждые 2 итерации обворачивались в div
OgecuT Отправлено: 26 Декабря, 2014 - 14:59:27 • Тема: нужно каждые 2 итерации цикла обвернуть в div • Форум: Вопросы новичков

Ответов: 6
Просмотров: 713
есть код который выводит инфу с базы данных drupal
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php foreach ($rows as $id => $row): ?>
  3. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  4.     <?php print $row;?>
  5. </div>
  6. <?php endforeach; ?>
  7.  


нужно каждые 2 итерация цикла обворачивать в div

сейчас он этот кусок кода

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .' news_s_r"';  } ?>>
  2.     <?php print $row;?>


выводит:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="item1"></div>
  3. <div class="item2"></div>
  4. <div class="item3"></div>
  5. <div class="item4"></div>
  6. <div class="item5"></div>
  7. <div class="item6"></div>
  8. <div class="item7"></div>
  9. <div class="item8"></div>
  10. <div class="item9"></div>
  11.  


а надо что бы боло так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="wrap">
  3. <div class="item1"></div>
  4. <div class="item2"></div>
  5. </div>
  6. <div class="wrap">
  7. <div class="item3"></div>
  8. <div class="item4"></div>
  9. </div>
  10. <div class="wrap">
  11. <div class="item5"></div>
  12. <div class="item6"></div>
  13. </div>
  14. <div class="wrap">
  15. <div class="item7"></div>
  16. <div class="item8"></div>
  17. </div>
  18. <div class="wrap">
  19. <div class="item9"></div>
  20. </div>
  21.  


помогите пожалуйста.
OgecuT Отправлено: 24 Ноября, 2014 - 14:30:26 • Тема: Задания программисту Метод сортировки для VirtueMart • Форум: FreeLance

Ответов: 0
Просмотров: 1335
cnm сайт каталог на virtuemart под управления joomla. Стандартно из админку можно задать сортировку по 1 полю для всего магазина некоторым категория нужно сделать свою сортировку. Для это нужно переопредилить шаблон вывода категорий(материалов) для этой категории это сделано. Дальше шаблон ссылается на стандартный метод сортировки
Код из шаблона:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="orderby-displaynumber">
  2.         <div class="width45 floatleft">
  3.                 <?php echo $this->orderByList['orderby']; ?>
  4.                 <?php echo $this->orderByList['manufacturer']; ?>
  5.                
  6.         </div>
  7.    
  8.         <div class="width15 floatleft display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox (); ?></div>
  9.         <div class="vm-pagination">
  10.                 <?php echo $this->vmPagination->getPagesLinks (); ?>
  11.                 <span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span>
  12.         </div>
  13.  
  14.         <div class="clear"></div>
  15. </div> <!-- end of orderby-displaynumber -->


вот метод на который ссылаются

PHP:
скопировать код в буфер обмена
  1. function getOrderByList ($virtuemart_category_id = FALSE) {
  2.  
  3.                 $getArray = (JRequest::get ('get'));
  4.                 $link = '';
  5.                 $fieldLink = '';
  6.                 // remove setted variable
  7.                 unset ($getArray['globalCurrencyConverter'], $getArray['virtuemart_manufacturer_id'], $getArray['order'], $getArray['orderby']);
  8.  
  9.                 // foreach ($getArray as $key => $value )
  10.                 // $fieldLink .= '&'.$key.'='.$value;
  11.                 //vmdebug('getOrderByList',$getArray);
  12.                 foreach ($getArray as $key => $value) {
  13.                         if (is_array ($value)) {
  14.                                 foreach ($value as $k => $v) {
  15.                                         $fieldLink .= '&' . $key . '[' . $k . ']' . '=' . $v;
  16.                                 }
  17.                         }
  18.                         else {
  19.                                 if($key=='dir' or $key=='orderby') continue;
  20.                                 if(empty($value)) continue;
  21.                                 $fieldLink .= '&' . $key . '=' . $value;
  22.                         }
  23.                 }
  24.                 $fieldLink[0] = "?";
  25.                 $fieldLink = 'index.php' . $fieldLink;
  26.  
  27.                 $orderDirLink = '';
  28.                 $orderDirConf = VmConfig::get ('prd_brws_orderby_dir');
  29.                 $orderDir = JRequest::getWord ('dir', $orderDirConf);
  30.                 if ($orderDir != $orderDirConf ) {
  31.                         $orderDirLink .= '&dir=' . $orderDir;   //was '&order='
  32.                 }
  33.  
  34.                 $orderbyTxt = '';
  35.                 $orderby = JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'));
  36.                 $orderby = $this->checkFilterOrder ($orderby);
  37.  
  38.                 $orderbyCfg = VmConfig::get ('browse_orderby_field');
  39.                 if ($orderby != $orderbyCfg) {
  40.                         $orderbyTxt = '&orderby=' . $orderby;
  41.                 }
  42.  
  43.                 $manufacturerTxt = '';
  44.                 $manufacturerLink = '';
  45.                 if (VmConfig::get ('show_manufacturers')) {
  46.  
  47.                         // manufacturer link list
  48.                         $virtuemart_manufacturer_id = JRequest::getInt ('virtuemart_manufacturer_id', '');
  49.                         if ($virtuemart_manufacturer_id != '') {
  50.                                 $manufacturerTxt = '&virtuemart_manufacturer_id=' . $virtuemart_manufacturer_id;
  51.                         }
  52.  
  53.                         // if ($mf_virtuemart_product_ids) {
  54.                         $query = 'SELECT DISTINCT l.`mf_name`,l.`virtuemart_manufacturer_id` FROM `#__virtuemart_manufacturers_' . VMLANG . '` as l';
  55.                         $query .= ' JOIN `#__virtuemart_product_manufacturers` AS pm using (`virtuemart_manufacturer_id`)';
  56.                         $query .= ' LEFT JOIN `#__virtuemart_products` as p ON p.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  57.                         $query .= ' LEFT JOIN `#__virtuemart_product_categories` as c ON c.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  58.                         $query .= ' WHERE p.`published` =1';
  59.                         if ($virtuemart_category_id) {
  60.                                                 $catscont = array();
  61.                                                 $this->untreeCat($virtuemart_category_id, $catscont);
  62.                                                 $qkat = ' AND c.`virtuemart_category_id` IN('.$virtuemart_category_id;
  63.                                                 foreach ($catscont as &$kat){
  64.                                                    $qkat .= ', '.$kat;
  65.                                                 }        
  66.                                                 $qkat .= ')';
  67.                                                 $query .= $qkat;
  68.                                         }
  69.                         $query .= ' ORDER BY l.`mf_name`';
  70.                         $this->_db->setQuery ($query);
  71.                         $manufacturers = $this->_db->loadObjectList ();
  72.                         //              vmdebug('my manufacturers',$this->_db->getQuery());
  73.                         $manufacturerLink = '';
  74.                         if (count ($manufacturers) > 0) {
  75.                                 $manufacturerLink = '<div class="orderlist">';
  76.                                 if ($virtuemart_manufacturer_id > 0) {
  77.                                         $manufacturerLink .= '<div><a title="" href="' . JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink , FALSE) . '">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_ALL_MANUFACTURER') . '</a></div>';
  78.                                 }
  79.                                 if (count ($manufacturers) > 1) {
  80.                                         foreach ($manufacturers as $mf) {
  81.                                                 $link = JRoute::_ ($fieldLink . '&virtuemart_manufacturer_id=' . $mf->virtuemart_manufacturer_id . $orderbyTxt . $orderDirLink,FALSE);
  82.                                                 if ($mf->virtuemart_manufacturer_id != $virtuemart_manufacturer_id) {
  83.                                                         $manufacturerLink .= '<div><a title="' . $mf->mf_name . '" href="' . $link . '">' . $mf->mf_name . '</a></div>';
  84.                                                 }
  85.                                                 else {
  86.                                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $mf->mf_name . '</div>';
  87.                                                 }
  88.                                         }
  89.                                 }
  90.                                 elseif ($virtuemart_manufacturer_id > 0) {
  91.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $manufacturers[0]->mf_name . '</div>';
  92.                                 }
  93.                                 else {
  94.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="Order"> ' . $manufacturers[0]->mf_name . '</div>';
  95.                                 }
  96.                                 $manufacturerLink .= '</div>';
  97.                         }
  98.                         // }
  99.                 }
  100.  
  101.                 /* order by link list*/
  102.                 $orderByLink = '';
  103.                 $fields = VmConfig::get ('browse_orderby_fields');
  104.                 if (count ($fields) > 1) {
  105.                         $orderByLink = '<div class="orderlist">';
  106.                         foreach ($fields as $field) {
  107.                                 if ($field != $orderby) {
  108.  
  109.                                         $dotps = strrpos ($field, '.');
  110.                                         if ($dotps !== FALSE) {
  111.                                                 $prefix = substr ($field, 0, $dotps + 1);
  112.                                                 $fieldWithoutPrefix = substr ($field, $dotps + 1);
  113.                                                 //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  114.                                         }
  115.                                         else {
  116.                                                 $prefix = '';
  117.                                                 $fieldWithoutPrefix = $field;
  118.                                         }
  119.  
  120.                                         $text = JText::_ ('COM_VIRTUEMART_' . strtoupper ($fieldWithoutPrefix));
  121.  
  122.                                         $field = explode('.',$field);
  123.                                         if(isset($field[1])){
  124.                                                 $field = $field[1];
  125.                                         } else {
  126.                                                 $field = $field[0];
  127.                                         }
  128.                                         $link = JRoute::_ ($fieldLink . $manufacturerTxt . '&orderby=' . $field,FALSE);
  129.  
  130.                                         $orderByLink .= '<div><a title="' . $text . '" href="' . $link . '">' . $text . '</a></div>';
  131.                                 }
  132.                         }
  133.                         $orderByLink .= '</div>';
  134.                 }
  135.  
  136.  
  137.                 if($orderDir == 'ASC'){
  138.                         $orderDir = 'DESC';
  139.                 } else {
  140.                         $orderDir = 'ASC';
  141.                 }
  142.  
  143.                 if ($orderDir != $orderDirConf ) {
  144.                         $orderDirLink = '&dir=' . $orderDir;    //was '&order='
  145.                 } else {
  146.                         $orderDirLink = '';
  147.                 }
  148.  
  149.                 //$orderDirTxt = JText::_ ('COM_VIRTUEMART_SEARCH_ORDER_'.$orderDir);
  150.                 $orderDirTxt = JText::_ ('COM_VIRTUEMART_'.$orderDir);
  151.  
  152.                 $link = JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink . $manufacturerTxt,FALSE);
  153.  
  154.                 // full string list
  155.                 if ($orderby == '') {
  156.                         $orderby = $orderbyCfg;
  157.                 }
  158.                 $orderby = strtoupper ($orderby);
  159.  
  160.  
  161.                 $dotps = strrpos ($orderby, '.');
  162.                 if ($dotps !== FALSE) {
  163.                         $prefix = substr ($orderby, 0, $dotps + 1);
  164.                         $orderby = substr ($orderby, $dotps + 1);
  165.                         //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  166.                 }
  167.                 else {
  168.                         $prefix = '';
  169.                         //              $orderby = $orderby;
  170.                 }
  171.  
  172.                 $orderByList = '<div class="orderlistcontainer"><div class="title">' . JText::_ ('COM_VIRTUEMART_ORDERBY') . '</div><div class="activeOrder"><a title="' . $orderDirTxt . '" href="' . $link . '">' . JText::_ ('COM_VIRTUEMART_' . $orderby) . ' ' . $orderDirTxt . '</a></div>';
  173.                 $orderByList .= $orderByLink . '</div>';
  174.  
  175.                 $manuList = '';
  176.                 if (VmConfig::get ('show_manufacturers')) {
  177.                         if (empty ($currentManufacturerLink)) {
  178.                                 $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_MANUFACTURER') . '</div>';
  179.                         }
  180.                         $manuList = ' <div class="orderlistcontainer">' . $currentManufacturerLink;
  181.                         $manuList .= $manufacturerLink . '</div><div class="clear"></div>';
  182.  
  183.                 }
  184.  
  185.                 return array('orderby'=> $orderByList, 'manufacturer'=> $manuList);
  186.         }


нужно написать маленький метод без возможности управления с админки и других параметров сортировки просто что бы он сортировал товары рендомом. помогите пожалуйста
OgecuT Отправлено: 24 Ноября, 2014 - 10:12:40 • Тема: Метод сортировки для VirtueMart • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 23
cnm сайт каталог на virtuemart под управления joomla. Стандартно из админку можно задать сортировку по 1 полю для всего магазина некоторым категория нужно сделать свою сортировку. Для это нужно переопредилить шаблон вывода категорий(материалов) для этой категории это сделано. Дальше шаблон ссылается на стандартный метод сортировки
Код из шаблона:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <div class="orderby-displaynumber">
  4.         <div class="width45 floatleft">
  5.                 <?php echo $this->orderByList['orderby']; ?>
  6.                 <?php echo $this->orderByList['manufacturer']; ?>
  7.                
  8.         </div>
  9.    
  10.         <div class="width15 floatleft display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox (); ?></div>
  11.         <div class="vm-pagination">
  12.                 <?php echo $this->vmPagination->getPagesLinks (); ?>
  13.                 <span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span>
  14.         </div>
  15.  
  16.         <div class="clear"></div>
  17. </div> <!-- end of orderby-displaynumber -->
  18.  
  19.  


вот метод на который ссылаются

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.         function getOrderByList ($virtuemart_category_id = FALSE) {
  4.  
  5.                 $getArray = (JRequest::get ('get'));
  6.                 $link = '';
  7.                 $fieldLink = '';
  8.                 // remove setted variable
  9.                 unset ($getArray['globalCurrencyConverter'], $getArray['virtuemart_manufacturer_id'], $getArray['order'], $getArray['orderby']);
  10.  
  11.                 // foreach ($getArray as $key => $value )
  12.                 // $fieldLink .= '&'.$key.'='.$value;
  13.                 //vmdebug('getOrderByList',$getArray);
  14.                 foreach ($getArray as $key => $value) {
  15.                         if (is_array ($value)) {
  16.                                 foreach ($value as $k => $v) {
  17.                                         $fieldLink .= '&' . $key . '[' . $k . ']' . '=' . $v;
  18.                                 }
  19.                         }
  20.                         else {
  21.                                 if($key=='dir' or $key=='orderby') continue;
  22.                                 if(empty($value)) continue;
  23.                                 $fieldLink .= '&' . $key . '=' . $value;
  24.                         }
  25.                 }
  26.                 $fieldLink[0] = "?";
  27.                 $fieldLink = 'index.php' . $fieldLink;
  28.  
  29.                 $orderDirLink = '';
  30.                 $orderDirConf = VmConfig::get ('prd_brws_orderby_dir');
  31.                 $orderDir = JRequest::getWord ('dir', $orderDirConf);
  32.                 if ($orderDir != $orderDirConf ) {
  33.                         $orderDirLink .= '&dir=' . $orderDir;   //was '&order='
  34.                 }
  35.  
  36.                 $orderbyTxt = '';
  37.                 $orderby = JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'));
  38.                 $orderby = $this->checkFilterOrder ($orderby);
  39.  
  40.                 $orderbyCfg = VmConfig::get ('browse_orderby_field');
  41.                 if ($orderby != $orderbyCfg) {
  42.                         $orderbyTxt = '&orderby=' . $orderby;
  43.                 }
  44.  
  45.                 $manufacturerTxt = '';
  46.                 $manufacturerLink = '';
  47.                 if (VmConfig::get ('show_manufacturers')) {
  48.  
  49.                         // manufacturer link list
  50.                         $virtuemart_manufacturer_id = JRequest::getInt ('virtuemart_manufacturer_id', '');
  51.                         if ($virtuemart_manufacturer_id != '') {
  52.                                 $manufacturerTxt = '&virtuemart_manufacturer_id=' . $virtuemart_manufacturer_id;
  53.                         }
  54.  
  55.                         // if ($mf_virtuemart_product_ids) {
  56.                         $query = 'SELECT DISTINCT l.`mf_name`,l.`virtuemart_manufacturer_id` FROM `#__virtuemart_manufacturers_' . VMLANG . '` as l';
  57.                         $query .= ' JOIN `#__virtuemart_product_manufacturers` AS pm using (`virtuemart_manufacturer_id`)';
  58.                         $query .= ' LEFT JOIN `#__virtuemart_products` as p ON p.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  59.                         $query .= ' LEFT JOIN `#__virtuemart_product_categories` as c ON c.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  60.                         $query .= ' WHERE p.`published` =1';
  61.                         if ($virtuemart_category_id) {
  62.                                                 $catscont = array();
  63.                                                 $this->untreeCat($virtuemart_category_id, $catscont);
  64.                                                 $qkat = ' AND c.`virtuemart_category_id` IN('.$virtuemart_category_id;
  65.                                                 foreach ($catscont as &$kat){
  66.                                                    $qkat .= ', '.$kat;
  67.                                                 }        
  68.                                                 $qkat .= ')';
  69.                                                 $query .= $qkat;
  70.                                         }
  71.                         $query .= ' ORDER BY l.`mf_name`';
  72.                         $this->_db->setQuery ($query);
  73.                         $manufacturers = $this->_db->loadObjectList ();
  74.                         //              vmdebug('my manufacturers',$this->_db->getQuery());
  75.                         $manufacturerLink = '';
  76.                         if (count ($manufacturers) > 0) {
  77.                                 $manufacturerLink = '<div class="orderlist">';
  78.                                 if ($virtuemart_manufacturer_id > 0) {
  79.                                         $manufacturerLink .= '<div><a title="" href="' . JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink , FALSE) . '">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_ALL_MANUFACTURER') . '</a></div>';
  80.                                 }
  81.                                 if (count ($manufacturers) > 1) {
  82.                                         foreach ($manufacturers as $mf) {
  83.                                                 $link = JRoute::_ ($fieldLink . '&virtuemart_manufacturer_id=' . $mf->virtuemart_manufacturer_id . $orderbyTxt . $orderDirLink,FALSE);
  84.                                                 if ($mf->virtuemart_manufacturer_id != $virtuemart_manufacturer_id) {
  85.                                                         $manufacturerLink .= '<div><a title="' . $mf->mf_name . '" href="' . $link . '">' . $mf->mf_name . '</a></div>';
  86.                                                 }
  87.                                                 else {
  88.                                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $mf->mf_name . '</div>';
  89.                                                 }
  90.                                         }
  91.                                 }
  92.                                 elseif ($virtuemart_manufacturer_id > 0) {
  93.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $manufacturers[0]->mf_name . '</div>';
  94.                                 }
  95.                                 else {
  96.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="Order"> ' . $manufacturers[0]->mf_name . '</div>';
  97.                                 }
  98.                                 $manufacturerLink .= '</div>';
  99.                         }
  100.                         // }
  101.                 }
  102.  
  103.                 /* order by link list*/
  104.                 $orderByLink = '';
  105.                 $fields = VmConfig::get ('browse_orderby_fields');
  106.                 if (count ($fields) > 1) {
  107.                         $orderByLink = '<div class="orderlist">';
  108.                         foreach ($fields as $field) {
  109.                                 if ($field != $orderby) {
  110.  
  111.                                         $dotps = strrpos ($field, '.');
  112.                                         if ($dotps !== FALSE) {
  113.                                                 $prefix = substr ($field, 0, $dotps + 1);
  114.                                                 $fieldWithoutPrefix = substr ($field, $dotps + 1);
  115.                                                 //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  116.                                         }
  117.                                         else {
  118.                                                 $prefix = '';
  119.                                                 $fieldWithoutPrefix = $field;
  120.                                         }
  121.  
  122.                                         $text = JText::_ ('COM_VIRTUEMART_' . strtoupper ($fieldWithoutPrefix));
  123.  
  124.                                         $field = explode('.',$field);
  125.                                         if(isset($field[1])){
  126.                                                 $field = $field[1];
  127.                                         } else {
  128.                                                 $field = $field[0];
  129.                                         }
  130.                                         $link = JRoute::_ ($fieldLink . $manufacturerTxt . '&orderby=' . $field,FALSE);
  131.  
  132.                                         $orderByLink .= '<div><a title="' . $text . '" href="' . $link . '">' . $text . '</a></div>';
  133.                                 }
  134.                         }
  135.                         $orderByLink .= '</div>';
  136.                 }
  137.  
  138.  
  139.                 if($orderDir == 'ASC'){
  140.                         $orderDir = 'DESC';
  141.                 } else {
  142.                         $orderDir = 'ASC';
  143.                 }
  144.  
  145.                 if ($orderDir != $orderDirConf ) {
  146.                         $orderDirLink = '&dir=' . $orderDir;    //was '&order='
  147.                 } else {
  148.                         $orderDirLink = '';
  149.                 }
  150.  
  151.                 //$orderDirTxt = JText::_ ('COM_VIRTUEMART_SEARCH_ORDER_'.$orderDir);
  152.                 $orderDirTxt = JText::_ ('COM_VIRTUEMART_'.$orderDir);
  153.  
  154.                 $link = JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink . $manufacturerTxt,FALSE);
  155.  
  156.                 // full string list
  157.                 if ($orderby == '') {
  158.                         $orderby = $orderbyCfg;
  159.                 }
  160.                 $orderby = strtoupper ($orderby);
  161.  
  162.  
  163.                 $dotps = strrpos ($orderby, '.');
  164.                 if ($dotps !== FALSE) {
  165.                         $prefix = substr ($orderby, 0, $dotps + 1);
  166.                         $orderby = substr ($orderby, $dotps + 1);
  167.                         //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  168.                 }
  169.                 else {
  170.                         $prefix = '';
  171.                         //              $orderby = $orderby;
  172.                 }
  173.  
  174.                 $orderByList = '<div class="orderlistcontainer"><div class="title">' . JText::_ ('COM_VIRTUEMART_ORDERBY') . '</div><div class="activeOrder"><a title="' . $orderDirTxt . '" href="' . $link . '">' . JText::_ ('COM_VIRTUEMART_' . $orderby) . ' ' . $orderDirTxt . '</a></div>';
  175.                 $orderByList .= $orderByLink . '</div>';
  176.  
  177.                 $manuList = '';
  178.                 if (VmConfig::get ('show_manufacturers')) {
  179.                         if (empty ($currentManufacturerLink)) {
  180.                                 $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_MANUFACTURER') . '</div>';
  181.                         }
  182.                         $manuList = ' <div class="orderlistcontainer">' . $currentManufacturerLink;
  183.                         $manuList .= $manufacturerLink . '</div><div class="clear"></div>';
  184.  
  185.                 }
  186.  
  187.                 return array('orderby'=> $orderByList, 'manufacturer'=> $manuList);
  188.         }
  189.  
  190.  
  191.  


нужно написать маленький метод без возможности управления с админки и других параметров сортировки просто что бы он сортировал товары рендомом. помогите пожалуйста
OgecuT Отправлено: 21 Ноября, 2014 - 17:00:12 • Тема: Метод сортировки для VirtueMart • Форум: Программирование на PHP

Ответов: 0
Просмотров: 855
cnm сайт каталог на virtuemart под управления joomla. Стандартно из админку можно задать сортировку по 1 полю для всего магазина некоторым категория нужно сделать свою сортировку. Для это нужно переопредилить шаблон вывода категорий(материалов) для этой категории это сделано. Дальше шаблон ссылается на стандартный метод сортировки
Код из шаблона:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="orderby-displaynumber">
  3.         <div class="width45 floatleft">
  4.                 <?php echo $this->orderByList['orderby']; ?>
  5.                 <?php echo $this->orderByList['manufacturer']; ?>
  6.                
  7.         </div>
  8.    
  9.         <div class="width15 floatleft display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox (); ?></div>
  10.         <div class="vm-pagination">
  11.                 <?php echo $this->vmPagination->getPagesLinks (); ?>
  12.                 <span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span>
  13.         </div>
  14.  
  15.         <div class="clear"></div>
  16. </div> <!-- end of orderby-displaynumber -->
  17.  



вот метод на который ссылаются

PHP:
скопировать код в буфер обмена
  1.  
  2.         function getOrderByList ($virtuemart_category_id = FALSE) {
  3.  
  4.                 $getArray = (JRequest::get ('get'));
  5.                 $link = '';
  6.                 $fieldLink = '';
  7.                 // remove setted variable
  8.                 unset ($getArray['globalCurrencyConverter'], $getArray['virtuemart_manufacturer_id'], $getArray['order'], $getArray['orderby']);
  9.  
  10.                 // foreach ($getArray as $key => $value )
  11.                 // $fieldLink .= '&'.$key.'='.$value;
  12.                 //vmdebug('getOrderByList',$getArray);
  13.                 foreach ($getArray as $key => $value) {
  14.                         if (is_array ($value)) {
  15.                                 foreach ($value as $k => $v) {
  16.                                         $fieldLink .= '&' . $key . '[' . $k . ']' . '=' . $v;
  17.                                 }
  18.                         }
  19.                         else {
  20.                                 if($key=='dir' or $key=='orderby') continue;
  21.                                 if(empty($value)) continue;
  22.                                 $fieldLink .= '&' . $key . '=' . $value;
  23.                         }
  24.                 }
  25.                 $fieldLink[0] = "?";
  26.                 $fieldLink = 'index.php' . $fieldLink;
  27.  
  28.                 $orderDirLink = '';
  29.                 $orderDirConf = VmConfig::get ('prd_brws_orderby_dir');
  30.                 $orderDir = JRequest::getWord ('dir', $orderDirConf);
  31.                 if ($orderDir != $orderDirConf ) {
  32.                         $orderDirLink .= '&dir=' . $orderDir;   //was '&order='
  33.                 }
  34.  
  35.                 $orderbyTxt = '';
  36.                 $orderby = JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'));
  37.                 $orderby = $this->checkFilterOrder ($orderby);
  38.  
  39.                 $orderbyCfg = VmConfig::get ('browse_orderby_field');
  40.                 if ($orderby != $orderbyCfg) {
  41.                         $orderbyTxt = '&orderby=' . $orderby;
  42.                 }
  43.  
  44.                 $manufacturerTxt = '';
  45.                 $manufacturerLink = '';
  46.                 if (VmConfig::get ('show_manufacturers')) {
  47.  
  48.                         // manufacturer link list
  49.                         $virtuemart_manufacturer_id = JRequest::getInt ('virtuemart_manufacturer_id', '');
  50.                         if ($virtuemart_manufacturer_id != '') {
  51.                                 $manufacturerTxt = '&virtuemart_manufacturer_id=' . $virtuemart_manufacturer_id;
  52.                         }
  53.  
  54.                         // if ($mf_virtuemart_product_ids) {
  55.                         $query = 'SELECT DISTINCT l.`mf_name`,l.`virtuemart_manufacturer_id` FROM `#__virtuemart_manufacturers_' . VMLANG . '` as l';
  56.                         $query .= ' JOIN `#__virtuemart_product_manufacturers` AS pm using (`virtuemart_manufacturer_id`)';
  57.                         $query .= ' LEFT JOIN `#__virtuemart_products` as p ON p.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  58.                         $query .= ' LEFT JOIN `#__virtuemart_product_categories` as c ON c.`virtuemart_product_id` = pm.`virtuemart_product_id` ';
  59.                         $query .= ' WHERE p.`published` =1';
  60.                         if ($virtuemart_category_id) {
  61.                                                 $catscont = array();
  62.                                                 $this->untreeCat($virtuemart_category_id, $catscont);
  63.                                                 $qkat = ' AND c.`virtuemart_category_id` IN('.$virtuemart_category_id;
  64.                                                 foreach ($catscont as &$kat){
  65.                                                    $qkat .= ', '.$kat;
  66.                                                 }        
  67.                                                 $qkat .= ')';
  68.                                                 $query .= $qkat;
  69.                                         }
  70.                         $query .= ' ORDER BY l.`mf_name`';
  71.                         $this->_db->setQuery ($query);
  72.                         $manufacturers = $this->_db->loadObjectList ();
  73.                         //              vmdebug('my manufacturers',$this->_db->getQuery());
  74.                         $manufacturerLink = '';
  75.                         if (count ($manufacturers) > 0) {
  76.                                 $manufacturerLink = '<div class="orderlist">';
  77.                                 if ($virtuemart_manufacturer_id > 0) {
  78.                                         $manufacturerLink .= '<div><a title="" href="' . JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink , FALSE) . '">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_ALL_MANUFACTURER') . '</a></div>';
  79.                                 }
  80.                                 if (count ($manufacturers) > 1) {
  81.                                         foreach ($manufacturers as $mf) {
  82.                                                 $link = JRoute::_ ($fieldLink . '&virtuemart_manufacturer_id=' . $mf->virtuemart_manufacturer_id . $orderbyTxt . $orderDirLink,FALSE);
  83.                                                 if ($mf->virtuemart_manufacturer_id != $virtuemart_manufacturer_id) {
  84.                                                         $manufacturerLink .= '<div><a title="' . $mf->mf_name . '" href="' . $link . '">' . $mf->mf_name . '</a></div>';
  85.                                                 }
  86.                                                 else {
  87.                                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $mf->mf_name . '</div>';
  88.                                                 }
  89.                                         }
  90.                                 }
  91.                                 elseif ($virtuemart_manufacturer_id > 0) {
  92.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . $manufacturers[0]->mf_name . '</div>';
  93.                                 }
  94.                                 else {
  95.                                         $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="Order"> ' . $manufacturers[0]->mf_name . '</div>';
  96.                                 }
  97.                                 $manufacturerLink .= '</div>';
  98.                         }
  99.                         // }
  100.                 }
  101.  
  102.                 /* order by link list*/
  103.                 $orderByLink = '';
  104.                 $fields = VmConfig::get ('browse_orderby_fields');
  105.                 if (count ($fields) > 1) {
  106.                         $orderByLink = '<div class="orderlist">';
  107.                         foreach ($fields as $field) {
  108.                                 if ($field != $orderby) {
  109.  
  110.                                         $dotps = strrpos ($field, '.');
  111.                                         if ($dotps !== FALSE) {
  112.                                                 $prefix = substr ($field, 0, $dotps + 1);
  113.                                                 $fieldWithoutPrefix = substr ($field, $dotps + 1);
  114.                                                 //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  115.                                         }
  116.                                         else {
  117.                                                 $prefix = '';
  118.                                                 $fieldWithoutPrefix = $field;
  119.                                         }
  120.  
  121.                                         $text = JText::_ ('COM_VIRTUEMART_' . strtoupper ($fieldWithoutPrefix));
  122.  
  123.                                         $field = explode('.',$field);
  124.                                         if(isset($field[1])){
  125.                                                 $field = $field[1];
  126.                                         } else {
  127.                                                 $field = $field[0];
  128.                                         }
  129.                                         $link = JRoute::_ ($fieldLink . $manufacturerTxt . '&orderby=' . $field,FALSE);
  130.  
  131.                                         $orderByLink .= '<div><a title="' . $text . '" href="' . $link . '">' . $text . '</a></div>';
  132.                                 }
  133.                         }
  134.                         $orderByLink .= '</div>';
  135.                 }
  136.  
  137.  
  138.                 if($orderDir == 'ASC'){
  139.                         $orderDir = 'DESC';
  140.                 } else {
  141.                         $orderDir = 'ASC';
  142.                 }
  143.  
  144.                 if ($orderDir != $orderDirConf ) {
  145.                         $orderDirLink = '&dir=' . $orderDir;    //was '&order='
  146.                 } else {
  147.                         $orderDirLink = '';
  148.                 }
  149.  
  150.                 //$orderDirTxt = JText::_ ('COM_VIRTUEMART_SEARCH_ORDER_'.$orderDir);
  151.                 $orderDirTxt = JText::_ ('COM_VIRTUEMART_'.$orderDir);
  152.  
  153.                 $link = JRoute::_ ($fieldLink . $orderbyTxt . $orderDirLink . $manufacturerTxt,FALSE);
  154.  
  155.                 // full string list
  156.                 if ($orderby == '') {
  157.                         $orderby = $orderbyCfg;
  158.                 }
  159.                 $orderby = strtoupper ($orderby);
  160.  
  161.  
  162.                 $dotps = strrpos ($orderby, '.');
  163.                 if ($dotps !== FALSE) {
  164.                         $prefix = substr ($orderby, 0, $dotps + 1);
  165.                         $orderby = substr ($orderby, $dotps + 1);
  166.                         //                              vmdebug('Found dot '.$dotps.' $prefix '.$prefix.'  $fieldWithoutPrefix '.$fieldWithoutPrefix);
  167.                 }
  168.                 else {
  169.                         $prefix = '';
  170.                         //              $orderby = $orderby;
  171.                 }
  172.  
  173.                 $orderByList = '<div class="orderlistcontainer"><div class="title">' . JText::_ ('COM_VIRTUEMART_ORDERBY') . '</div><div class="activeOrder"><a title="' . $orderDirTxt . '" href="' . $link . '">' . JText::_ ('COM_VIRTUEMART_' . $orderby) . ' ' . $orderDirTxt . '</a></div>';
  174.                 $orderByList .= $orderByLink . '</div>';
  175.  
  176.                 $manuList = '';
  177.                 if (VmConfig::get ('show_manufacturers')) {
  178.                         if (empty ($currentManufacturerLink)) {
  179.                                 $currentManufacturerLink = '<div class="title">' . JText::_ ('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL') . '</div><div class="activeOrder">' . JText::_ ('COM_VIRTUEMART_SEARCH_SELECT_MANUFACTURER') . '</div>';
  180.                         }
  181.                         $manuList = ' <div class="orderlistcontainer">' . $currentManufacturerLink;
  182.                         $manuList .= $manufacturerLink . '</div><div class="clear"></div>';
  183.  
  184.                 }
  185.  
  186.                 return array('orderby'=> $orderByList, 'manufacturer'=> $manuList);
  187.         }
  188.  
  189.  



нужно написать маленький метод без возможности управления с админки и других параметров сортировки просто что бы он сортировал товары рендомом. помогите пожалуйста
OgecuT Отправлено: 06 Ноября, 2014 - 18:01:12 • Тема: Создание админки для сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 1192
RickMan пишет:
Вы это все решили писать с нуля? Почему бы просто не взять wordpress + любой плагин для галерей (а их там куча и еще тележка).


не хочу из за того что в это будет быстрый сайт без лишних модулей и плагинов. А в админке нужно только добавления новой галерее
OgecuT Отправлено: 06 Ноября, 2014 - 16:49:52 • Тема: Создание админки для сайта • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 1192
Ребят такая проблема в php начинающий я. Надо реализовать админку для простого html сайта. Суть такая сайт для фотографа и в нём должно быть много галерей. Я скачал простую галерею на jquery. Я понимаю как сделать для одной галереи. с админки пользователь будет вводить путь к картинке(картинкам) после нажатия на кнопку загрузить данные запишутся в базу а при заходе пользователем в галерею данные о пути к изображениям будут подставлятся в шаблон. Но как сделать что бы галерей было много например: свадьба1 свадьба2 свадьба3. и что бы все это подставлялось в один шаблон. Извиняюсь если описал проблему тупо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB