0 Пользователей и 1 Гость просматривают эту тему.
  • 27 Ответов
  • 8011 Просмотров
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Проблемы при установке
« : 06.04.2013, 09:07:33 »
Ребята и девчата, кто пробовал установить новую версию, отпишите у всех ли все нормально ставится.
У меня есть желание отладить систему, будупросить доступы к вам на хостинг и разбираться в чем причина.
 *DRINK*
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

ELLE

  • Глобальный модератор
  • 4513
  • 891 / 0
Re: Проблемы при установке
« Ответ #1 : 06.04.2013, 13:18:19 »
поставилось после того как в .htaccess дописали
Код
php_value upload_max_filesize 16M
php_value post_max_size 16M
а так, даже ошибки не было - после загрузки пакета просто перезагрузка и все.

а и кстати, неплохо было бы включить в пакет хоть какие-то демо-данные (может они есть? не предложили установить), а так для теста муторно забивать минимум чтоб проверить работоспособность
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #2 : 06.04.2013, 15:51:05 »
поставилось после того как в .htaccess дописали
Код
php_value upload_max_filesize 16M
php_value post_max_size 16M
а так, даже ошибки не было - после загрузки пакета просто перезагрузка и все.

а и кстати, неплохо было бы включить в пакет хоть какие-то демо-данные (может они есть? не предложили установить), а так для теста муторно забивать минимум чтоб проверить работоспособность

ну так архав весит под 10мб из-за геоip, не мудрено что ругается. Что с этим делать я пока что не придумал.
по поводу демо данных, очень хорошая заметка, надо быдет с демо сайта наполнение загнать туда. К следующей сборке сделаем
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

adan

  • Захожу иногда
  • 109
  • 7 / 0
Re: Проблемы при установке
« Ответ #3 : 06.04.2013, 16:13:46 »
ну так архав весит под 10мб из-за геоip, не мудрено что ругается. Что с этим делать я пока что не придумал.
по поводу демо данных, очень хорошая заметка, надо быдет с демо сайта наполнение загнать туда. К следующей сборке сделаем
Мне кажется должен быть выбор, ставить или нет. По мне так демо данные ненужны.., это нужно только для тестирования.
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #4 : 07.04.2013, 00:53:30 »
Мне кажется должен быть выбор, ставить или нет. По мне так демо данные ненужны.., это нужно только для тестирования.

просто надо сделать кнопку "удалить все"
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

ELLE

  • Глобальный модератор
  • 4513
  • 891 / 0
Re: Проблемы при установке
« Ответ #5 : 07.04.2013, 01:41:43 »
просто надо сделать кнопку "удалить все"
ой, не...сомневаюсь....
предположим ситуацию, что после разработки сайта, его управление переходит к кому-либо из сотрудников компании и вот ненароком нажмет он эту кнопку и усё....нет магазина :)
поэтому, лучше после установки спросить "установить демо-данные?" как например это делается в VirtueMart или джумшоппинге
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #6 : 07.04.2013, 02:08:41 »
ой, не...сомневаюсь....
предположим ситуацию, что после разработки сайта, его управление переходит к кому-либо из сотрудников компании и вот ненароком нажмет он эту кнопку и усё....нет магазина :)
поэтому, лучше после установки спросить "установить демо-данные?" как например это делается в VirtueMart или джумшоппинге

Ну на самом деле надо и то и то, просто кнопку "удалить все" надо прятать от глаз менеджеров в настройки куда им зарезать доступ правами. Она очень спасает когда разрабатываешь сайт и тестируешь для него какой нить особый импорт. Ну а если кто-то удалит не нужное, то я думаю на любом уважающем себя хостинге делаются бекапы данных.
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

AleksWhite

  • Новичок
  • 8
  • 0 / 0
Re: Проблемы при установке
« Ответ #7 : 10.04.2013, 14:05:45 »
Ребята и девчата, кто пробовал установить новую версию, отпишите у всех ли все нормально ставится.
У меня есть желание отладить систему, будупросить доступы к вам на хостинг и разбираться в чем причина.
 *DRINK*
Готов предоставить :) и даже помочь.
Открыл темку http://joomlaforum.ru/index.php/topic,260294.new.html#new

Если ставить через Установить из каталога, ругается что компонент установлен
Например
Код
Установка компонента: Другой компонент уже использует каталог: /home/administrator/components/com_ksenmart
удаляю и все равно компонент не ставится
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #8 : 11.04.2013, 16:25:20 »
Готов предоставить :) и даже помочь.
Открыл темку http://joomlaforum.ru/index.php/topic,260294.new.html#new

Если ставить через Установить из каталога, ругается что компонент установлен
Например
Код
Установка компонента: Другой компонент уже использует каталог: /home/administrator/components/com_ksenmart
удаляю и все равно компонент не ставится

если можно, доступы к хостингу и сайту в скайп мне скинь dimitriy-ldm
ну и поясни, ставил с нуля или поверх одной из старых версий?
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

AleksWhite

  • Новичок
  • 8
  • 0 / 0
Re: Проблемы при установке
« Ответ #9 : 12.04.2013, 21:59:07 »
Ставил с нуля. Скачал архив Joomla с сайта Joomla.ru и сразу после установки попытался установить Ваш компонент.
Отправил в скайп.
*

AleksWhite

  • Новичок
  • 8
  • 0 / 0
Re: Проблемы при установке
« Ответ #10 : 15.04.2013, 08:37:34 »
Переустановил заново.
Теперь при запуске установки получил вот такое сообщение
Цитировать
Warning: POST Content-Length of 9551007 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

Добавил в .htaccess строки
Код
php_value upload_max_filesize 16M
php_value post_max_size 16M
Ошибка не ушла.
Тогда вновь использовал установку через каталог tmp/

Установка через tmp к успеху не привела.

Похоже проблемы с хостингом.

Установил на локальную систему.
Установка удалась. Однако при обращении к компоненте появляются ошибки отображаемые на странице.
Цитировать
Strict Standards: Non-static method KMUpdaterFunctions::curlResponse() should not be called statically in D:\www\ksenmart\administrator\components\com_ksenmart\helpers\functions\updater_functions.php on line 15 Strict Standards: Non-static method KMPanelFunctions::getComponents() should not be called statically, assuming $this from incompatible context in D:\www\ksenmart\administrator\components\com_ksenmart\views\panel\view.html.php on line 16 Strict Standards: Non-static method KsenMartHelper::loadModules() should not be called statically, assuming $this from incompatible context in D:\www\ksenmart\administrator\components\com_ksenmart\views\panel\tmpl\default.php on line 4

PS зарегистрировал свою копию. Хочу добиться работы на локальной системе и потом перенести в Интернет.
« Последнее редактирование: 15.04.2013, 10:17:24 от AleksWhite »
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #11 : 15.04.2013, 10:07:49 »
Переустановил заново.
Теперь при запуске установки получил вот такое сообщение
Добавил в .htaccess строки
Код
php_value upload_max_filesize 16M
php_value post_max_size 16M
Ошибка не ушла.
Тогда вновь использовал установку через каталог tmp/

PS что получилось добавлю чуть позже

это ругается на размер файла архива.
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

AleksWhite

  • Новичок
  • 8
  • 0 / 0
Re: Проблемы при установке
« Ответ #12 : 15.04.2013, 13:08:35 »
После установки получил ошибку
Цитировать
Strict Standards: Non-static method KMUpdaterFunctions::curlResponse() should not be called statically in D:\www\ksenmart\administrator\components\com_ksenmart\helpers\functions\updater_functions.php on line 15 Strict Standards: Non-static method KsenMartHelper::loadModules() should not be called statically, assuming $this from incompatible context in D:\www\ksenmart\administrator\components\com_ksenmart\views\product\tmpl\default.php on line 21
первую ошибку вылечил так в файле updater_functions.php строка 189
Код
// было
function curlResponse($url,$data='',$timeout=600 )
// стало
public static function curlResponse($url,$data='',$timeout=600 )

Вторую также объявлением статической функции в файле administrator\components\com_ksenmart\helpers\ksenmart.php в строке 11
Код
// было
function loadModules($position,$name='',$params=array())
// стало
public static function loadModules($position,$name='',$params=array())

И еще одна ошибка проявилась
Цитировать
Strict Standards: Non-static method KMPanelFunctions::getComponents() should not be called statically, assuming $this from incompatible context in D:\www\ksenmart\administrator\components\com_ksenmart\views\panel\view.html.php on line 16
Вылечил также добавлением public static в строке 30 файла administrator\components\com_ksenmart\helpers\functions\panel_functions.php

Теперь пробую перенести локальный сайт на хостинг

Перенес на хостинг. Приложение работает. Переходим к освоению. :)
« Последнее редактирование: 15.04.2013, 20:23:23 от AleksWhite »
*

AleksWhite

  • Новичок
  • 8
  • 0 / 0
Re: Проблемы при установке
« Ответ #13 : 15.04.2013, 20:39:06 »
При обновлении компонента оказалось, что почему-то нет таблицы
Обновление закончилось с ошибкой
Цитировать
500 - Обнаружена ошибка.

JDatabaseMySQL::query: 1146 - Table 'u853041833_tb.i_ksenmart_settings' doesn't exist SQL=select value from i_ksenmart_settings where name='update_parts'

В архиве компонента также не нашел этой таблицы в файле  ...ksenmart.zip \administrator\sql\install.sql
*

zru4na

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Проблемы при установке
« Ответ #14 : 19.04.2013, 11:29:05 »
после установки и регистрации, выдало, что нужно обновить версию, нажимаю, находит, что появился новый модуль "Валюта по умолчанию" при попытке обновить либо скачать обновления выдает такую надпись "Fatal error: Call to undefined method KMCommonFunctions::getSettingsValue() in /home/zrunaby/public_html/administrator/components/com_ksenmart/helpers/functions/updater_functions.php on line 156
в 156 строке указанного файла стоит следующее
$versions['ksenmart']=KMCommonFunctions::getSettingsValue('version');

« Последнее редактирование: 19.04.2013, 23:04:51 от ldmco »
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #15 : 19.04.2013, 23:05:02 »
после установки и регистрации, выдало, что нужно обновить версию, нажимаю, находит, что появился новый модуль "Валюта по умолчанию" при попытке обновить либо скачать обновления выдает такую надпись "Fatal error: Call to undefined method KMCommonFunctions::getSettingsValue() in /home/zrunaby/public_html/administrator/components/com_ksenmart/helpers/functions/updater_functions.php on line 156
в 156 строке указанного файла стоит следующее
$versions['ksenmart']=KMCommonFunctions::getSettingsValue('version');



косяк будет устранен в следующем релизе, спасибо за обратную связь
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

Ne01eX

  • Захожу иногда
  • 90
  • 0 / 0
Re: Проблемы при установке
« Ответ #16 : 21.05.2013, 18:56:58 »
У меня такая ошибка на денвере... :( Как исправить подскажите?
Цитировать
Warning: POST Content-Length of 16601529 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent in X:\home\localhost\www\meble\libraries\joomla\session\session.php on line 532
*

Ne01eX

  • Захожу иногда
  • 90
  • 0 / 0
Re: Проблемы при установке
« Ответ #17 : 22.05.2013, 11:31:22 »
У меня такая ошибка на денвере... :( Как исправить подскажите?
Ура исправил. У меня файл .htaccess почему то назывался htaccess.txt и по этому не работал код:
Цитировать
php_value upload_max_filesize 16M
php_value post_max_size 16M
Я переименовал файл htaccess.txt в .htaccess и все заработало.

Всем спасибо за отличную и нужную тему...
*

zlideni

  • Захожу иногда
  • 337
  • 76 / 0
Re: Проблемы при установке
« Ответ #18 : 05.06.2013, 19:00:13 »
На сегодняшний день пакет скачанный с оффсайта весит 26,7 мб - в два раза больше чем пакеты обсуждаемые в топике, ldmco  - какие-та новые возможности?
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #19 : 07.06.2013, 12:09:46 »
На сегодняшний день пакет скачанный с оффсайта весит 26,7 мб - в два раза больше чем пакеты обсуждаемые в топике, ldmco  - какие-та новые возможности?

да, импорт/экспорт в эксель привинтили, гео локация в двух местах, ну и по мелочи набралось. Уже планирую разбивать Ксенмарт на компоненты и плагины потому что вы уже не первый кто задает подобный вопрос. 
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

Raybon

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Проблемы при установке
« Ответ #20 : 11.06.2013, 03:57:57 »
очень хочется так сказать пощупать компонент . НО ! Сталкнулся с проблемой после установки компонента, а именно в Google chrome банально отсутсвует кнопка добавить товар !в Firefox кнопка отображается но не кликабельна как и еще некоторые "Счего начать" например.
И так вопрос,  что я делаю  не так или откуда мои руки растут?
так же не нашел инфу о требованиях к хостингу
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #21 : 11.06.2013, 09:50:30 »
очень хочется так сказать пощупать компонент . НО ! Сталкнулся с проблемой после установки компонента, а именно в Google chrome банально отсутсвует кнопка добавить товар !http://clip2net.com/clip/m84420/1370908397-clip-40kb.pngв Firefox кнопка отображается http://clip2net.com/clip/m84420/1370908468-clip-43kb.png но не кликабельна как и еще некоторые "Счего начать" например.
И так вопрос,  что я делаю  не так или откуда мои руки растут?
так же не нашел инфу о требованиях к хостингу

Лично у меня проблема появилась из-за того что плагин браузера adBlock принял класс adds кнопки "добавить товар" за рекламу и заблочил ее.
Внесли изменения в сборку, сегодня выложим новую
« Последнее редактирование: 11.06.2013, 16:30:35 от ldmco »
Я отвечаю на все сообщения, просто на некоторые - устно :)
*

ifx

  • Осваиваюсь на форуме
  • 28
  • 4 / 0
Re: Проблемы при установке
« Ответ #22 : 15.06.2013, 18:53:48 »
Установил компонент, при попытке перейти в админке к компоненту (/administrator/index.php?option=com_ksenmart) получаю вот такую петрушку кода на белом экране. Что делать?
VPS, php 5.3, cURL, apc, debian
---
вижу у человека под ником scanners такая же проблема была еще в ноябре 2012 года - http://joomlaforum.ru/index.php/topic,223272.msg1226316.html#msg1226316. Прошло 6 месяцев она сохранилась по сей день. Как решили ее? Или не решили?

[code]setQuery($query); $modules=$db->loadObjectList(); foreach($modules as $module) { include(JPATH_COMPONENT.'/extentions/modules/'.$module->name.'/'.$module->name.'.php'); if (file_exists(JPATH_COMPONENT.'/extentions/modules/'.$module->name.'/'.$module->name.'.css')) $document->addStyleSheet(JURI::base().'components/com_ksenmart/extentions/modules/'.$module->name.'/'.$module->name.'.css'); if (file_exists(JPATH_COMPONENT.'/extentions/modules/'.$module->name.'/'.$module->name.'.js')) $document->addScript(JURI::base().'components/com_ksenmart/extentions/modules/'.$module->name.'/'.$module->name.'.js'); } } else { //$query="select * from #__ksenmart_modules where name='$name' and published='1'"; //$db->setQuery($query); //$module=$db->loadObject(); //if (count($module)>0) //{ include(JPATH_COMPONENT.'/extentions/modules/'.$name.'/'.$name.'.php'); if (file_exists(JPATH_COMPONENT.'/extentions/modules/'.$name.'/'.$name.'.css')) $document->addStyleSheet(JURI::base().'components/com_ksenmart/extentions/modules/'.$name.'/'.$name.'.css'); if (file_exists(JPATH_COMPONENT.'/extentions/modules/'.$name.'/'.$name.'.js')) $document->addScript(JURI::base().'components/com_ksenmart/extentions/modules/'.$name.'/'.$name.'.js'); //} } } function loadShortComponentInfo($component) { if (file_exists(JPATH_COMPONENT.'/extentions/components/'.$component.'/shortinfo.php')) include(JPATH_COMPONENT.'/extentions/components/'.$component.'/shortinfo.php'); } function getCategoryTree($parent,$level,$selected=array(),$show_root=0) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_categories where parent='$parent' order by ordering"; $db->setQuery($query); $cats=$db->loadObjectList(); $return=''; if (count($cats)>0 || $show_root!=0) $return='
'; if ($show_root==1) { $class='cat-level-'.$level; if (in_array(0,$selected)) $class.=' active'; $return.='
'.JText::_('empty_cat').'
'; } foreach($cats as $cat) { $class='cat-level-'.$level; if ($level>1) $class.=' hide'; if (in_array($cat->id,$selected)) $class.=' active'; $return.='
'.$cat->title; $return_childs=KsenMartHelper::GetCategoryTree($cat->id,$level+1,$selected); if ($return_childs!='') $return.=''.$return_childs.'
'; else $return.=''; } if (count($cats)>0 || $show_root!=0) $return.='
'; return $return; } private static $_config = array(); private static $_settings_cache = array(); public static function getSettingsValue($name,$default='') { if (empty(self::$_config)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_settings "; $db->setQuery($query); self::$_config = $db->loadObjectList('name'); } if (!array_key_exists($name, self::$_config)){ self::$_settings_cache[$name] = null; } else { self::$_settings_cache[$name] = self::$_config[$name]->value; } $ret = self::$_settings_cache[$name]; if (!is_null($ret)){ return $ret; } else { return $default; } } function SaveSetting($name,$value) { $db=JFactory::getDBO(); $query="update #__ksenmart_settings set value='$value' where name='$name'"; $db->setQuery($query); $res=$db->Query(); return $res; } function ClearImageCache($file) { $cache_dir=JPATH_COMPONENT.'/image/cache/'; $dir=scandir($cache_dir); foreach($dir as $d) { if ($d!='.' && $d!='..') { if (file_exists($cache_dir.$d.'/'.$file)) unlink($cache_dir.$d.'/'.$file); } } } function GenAlias($str,$type='') { $converter = array( 'Р°' => 'a', 'Р±' => 'b', 'РІ' => 'v', 'Рі' => 'g', 'Рґ' => 'd', 'Рµ' => 'e', 'С‘' => 'e', 'Р¶' => 'zh', 'Р·' => 'z', 'Рё' => 'i', 'Р№' => 'y', 'Рє' => 'k', 'Р»' => 'l', 'Рј' => 'm', 'РЅ' => 'n', 'Рѕ' => 'o', 'Рї' => 'p', 'СЂ' => 'r', 'СЃ' => 's', 'С‚' => 't', 'Сѓ' => 'u', 'С„' => 'f', 'С…' => 'h', 'С†' => 'c', 'С‡' => 'ch', 'С?' => 'sh', 'С‰' => 'sch', 'СЊ' => '\'', 'С‹' => 'y', 'СЉ' => '\'', 'СЌ' => 'e', 'СЋ' => 'yu', 'СЏ' => 'ya', 'Рђ' => 'A', 'Р‘' => 'B', 'Р’' => 'V', 'Р“' => 'G', 'Р”' => 'D', 'Р•' => 'E', 'РЃ' => 'E', 'Р–' => 'Zh', 'Р—' => 'Z', 'Р?' => 'I', 'Р™' => 'Y', 'Рљ' => 'K', 'Р›' => 'L', 'Рњ' => 'M', 'Рќ' => 'N', 'Рћ' => 'O', 'Рџ' => 'P', 'Р ' => 'R', 'РЎ' => 'S', 'Рў' => 'T', 'РЈ' => 'U', 'Р¤' => 'F', 'РҐ' => 'H', 'Р¦' => 'C', 'Р§' => 'Ch', 'РЁ' => 'Sh', 'Р©' => 'Sch', 'Р¬' => '\'', 'Р«' => 'Y', 'РЄ' => '\'', 'Р­' => 'E', 'Р®' => 'Yu', 'РЇ' => 'Ya', ); $str=strtr($str, $converter); $str = strtolower($str); $str = preg_replace('~[^-a-z0-9_]+~u','.', $str); $str = trim($str, "-"); $str = str_replace(array('.','-','+','=','/'),array('_','_','_','_','_'),$str); $bad_words=array('','price_less','price_more','order_type','order_dir'); $db=JFactory::getDBO(); $query=$db->getQuery(true); $query->select('config')->from('#__ksenmart_seo_config')->where('type="url"'); $db->setQuery($query); $configs=$db->loadObjectList(); foreach($configs as $config) { $config=json_decode($config->config); foreach($config as $c) if ($c->user==1) $bad_words[]=$c->title; } if (in_array($str,$bad_words)) $str.=time(); $tables=array('#__ksenmart_products','#__ksenmart_categories','#__ksenmart_manufacturers','#__ksenmart_countries','#__ksenmart_properties','#__ksenmart_property_values'); foreach($tables as $table) { $query=$db->getQuery(true); $query->select('count(*)')->from($table)->where('alias="'.$str.'"'); $db->setQuery($query); $count=$db->loadResult(); if ($count>0) $str.=time(); }    return $str; } function checkAlias($alias,$id=0) { $alias = str_replace(array('.','-','+','=','/'),array('_','_','_','_','_'),$alias); $bad_words=array('price_less','price_more','order_type','order_dir'); $db=JFactory::getDBO(); $query=$db->getQuery(true); $query->select('config')->from('#__ksenmart_seo_config')->where('type="url"'); $db->setQuery($query); $configs=$db->loadObjectList(); foreach($configs as $config) { $config=json_decode($config->config); foreach($config as $c) if ($c->user==1) $bad_words[]=$c->title; } if (in_array($alias,$bad_words)) return ''; $tables=array('#__ksenmart_products','#__ksenmart_categories','#__ksenmart_manufacturers','#__ksenmart_countries','#__ksenmart_properties','#__ksenmart_property_values'); foreach($tables as $table) { $query=$db->getQuery(true); $query->select('count(*)')->from($table)->where('alias="'.$alias.'"'); if ((int)$id!=0) $query->where('id!='.(int)$id); $db->setQuery($query); $count=$db->loadResult(); if ($count>0) return ''; } return $alias;    } function showPriceWithoutTransform($price,$currency=0) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $price=str_replace('{price}',$price,$currency->template); return $price; } function showPriceWithTransform($price,$currency=0) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $price=number_format($price,$currency->fractional,'.',$currency->separator); $price=str_replace('{price}',$price,$currency->template); return $price; } function getPriceInDefaultCurrency($price,$currency) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $price=$price/$currency->rate; return $price; } function getPriceInCurrentCurrency($price,$currency) { $app = JFactory::getApplication(); $curr_currency = $app->getUserState('com_ksenmart.curr_currency',0); if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $curr_currency = self::$_currencies[$curr_currency]; $price=$price/$currency->rate*$curr_currency->rate; return $price; }    function getPriceInDefaultCurrencyWithTransform($price,$currency) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $price=number_format($price,$currency->fractional,'.',$currency->separator); $price=str_replace('{price}',$price,$currency->template); return $price; } function getPriceInCurrency($price,$currency=0) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; $price=$price*$currency->rate; $price=number_format($price,$currency->fractional,'.',$currency->separator); return $price; } function getCurrencyCode($currency=0) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; return $currency->code; } function getCurrencyName($currency=0) { if (empty(self::$_currencies)) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_currencies"; $db->setQuery($query); $rows = $db->loadObjectList(); foreach ($rows as $v) { self::$_currencies[$v->id] = $v; if ($v->default == 1 ) { self::$_currencies[0] = $v; } } } $currency = self::$_currencies[$currency]; return $currency->title; } function getShopItemid() { if (self::$_Itemid === null) { $db=JFactory::getDBO(); $query="select * from #__menu where link='index.php?option=com_ksenmart&view=shopcatalog&layout=catalog' and published='1' limit 1"; $db->setQuery($query); $menuitem=$db->loadObject(); if (count($menuitem)>0) self::$_Itemid=$menuitem->id; else self::$_Itemid=''; } return self::$_Itemid; } function getPriceWithDiscount($price,$subscribe=0) { $user=KsenmartHelper::getUser(); $db=JFactory::getDBO(); $percent=0; $rur=0; $where=" and (0"; foreach($user->groups as $group) if ($group!=2 || ($group==2 && $subscribe==2)) $where.=" or user_group like '%|$group|%'"; if ($subscribe==1) $where.=" or user_group like '%|2|%'"; $where.=")"; if(array_key_exists($where, self::$_discounts)){ $discounts = self::$_discounts[$where]; } else { $query="select * from #__ksenmart_discounts where enabled='1' $where"; $db->setQuery($query); $discounts=$db->loadObjectList(); self::$_discounts[$where] = $discounts; } $price=($price-$rur)*(100-$percent)/100; return number_format($price, 2, '.', ''); } function getPriceWithoutDiscount($price,$subscribe=0) { $user=KsenmartHelper::getUser(); $db=JFactory::getDBO(); $percent=0; $rur=0; $where=" and (0"; foreach($user->groups as $group) if ($group!=1 || ($group==1 && $subscribe==2)) $where.=" or user_group like '%|$group|%'"; if ($subscribe==1) $where.=" or user_group like '%|1|%'"; $where.=")"; $price=($price+$rur)*100/(100-$percent); return number_format($price, 2, '.', ''); } function LoadTemplate($tpl) { include(JPATH_ROOT.'/components/com_ksenmart/templates/'.KsenMartHelper::getSettingsValue('template').'/'.$tpl.'.html'); } function getProductRate($id) { $db=JFactory::getDBO(); $rate=new stdClass(); $rate->rate=0; $rate->count=0; $query="select * from #__ksenmart_comments where product='$id'"; $db->setQuery($query); $comments=$db->loadObjectList(); $rate->count=count($comments); if ($rate->count>0) { foreach($comments as $comment) $rate->rate+=$comment->rate; $rate->rate=$rate->rate/$rate->count; } return $rate; } function formatCommentDate($date) { $str_date=''; $date=explode(' ',$date); $date=explode('-',$date[0]); $mon=''; switch($date[1]) { case '01': $mon='января'; break; case '02': $mon='февраля'; break; case '03': $mon='марта'; break; case '04': $mon='апреля'; break; case '05': $mon='мая'; break; case '06': $mon='РёСЋРЅСЏ'; break; case '07': $mon='июля'; break; case '08': $mon='августа'; break; case '09': $mon='сентября'; break; case '10': $mon='октября'; break; case '11': $mon='РЅРѕСЏР±СЂСЏ'; break; case '12': $mon='декабря'; break; } $str_date=$date[2].' '.$mon.' '.$date[0]; return $str_date; } function formatPrintformDate($date) { return date('d.m.Y',strtotime($date)); } function getAddToCartLink() { $params = JComponentHelper::getParams('com_ksenmart'); $Itemid=KsenMartHelper::getShopItemid(); if ($params->get('order_process',0)==1) { $session =& JFactory::getSession(); $order_id=$session->get('shop_order_id',0); if ($order_id==0) $add_link_cart = JRoute::_('index.php?option=com_ksenmart&view=shopopenorder&Itemid='.$Itemid); else $add_link_cart = JRoute::_('index.php?option=com_ksenmart&view=shopopencart&Itemid='.$Itemid); } else $add_link_cart = JRoute::_('index.php?option=com_ksenmart&view=shopopencart&Itemid='.$Itemid); return $add_link_cart; } function sendOrderIndoCustomer($order_id) { $dispatcher   = JDispatcher::getInstance(); $db=JFactory::getDBO(); $Itemid=KsenMartHelper::getShopItemid(); $query="select * from #__ksenmart_orders where id='$order_id'"; $db->setQuery($query); $order=$db->loadObject(); $content = ''; $content.='
Р?нформация
Р?РјСЏ:   '.$order->name.'
E-mail:   '.$order->email.'
Адрес доставки:   '.$order->address.'
Заказ

'; $query="select * from #__ksenmart_order_items where order_id='$order_id'"; $db->setQuery($query); $order->items=$db->loadObjectList(); foreach ($order->items as &$item) { $item_properties=array(); $properties=explode(';',$item->properties); foreach($properties as $property) { $property=explode(':',$property); $query="select * from #__ksenmart_properties where id='$property[0]'"; $this->_db->setQuery($query); $prop=$this->_db->loadObject(); if (count($prop)>0) { $item_properties[]=new stdClass(); $item_properties[count($item_properties)-1]->title=$prop->title; if ($prop->type=='select' || $prop->type=='radio') { $query="select * from #__ksenmart_property_values where id='$property[1]'"; $this->_db->setQuery($query); $val=$this->_db->loadObject();    if (count($val)>0) $item_properties[count($item_properties)-1]->value=$val->title.' '.$prop->finishing; } }    }    $query="select * from #__ksenmart_products where id='$item->product_id'"; $db->setQuery($query); $item->product=$db->loadObject(); $link = JURI::root().JRoute::_('index.php?option=com_ksenmart&view=shopproduct&id='.$item->product->id.":".$item->product->alias.'&Itemid='.$Itemid); $content.='    '; } $order->total_cost=$order->cost; $dispatcher->trigger('onAfterGetOrder',array(&$order)); $results=$dispatcher->trigger('onDisplayAfterLetterContent',array(&$order)); $order->onDisplayAfterLetterContent=trim(implode("\n", $results)); $content.=' ';    $content.=$order->onDisplayAfterLetterContent; $content.='
РџСЂРѕРґСѓРєС‚   РљРѕР»-РІРѕ   Р¦РµРЅР°   РЎС‚оимость
'.$item->product->title.' '; if ($item->product->product_code!='') $content.=' РђСЂС‚. '.$item->product->product_code.''; foreach($item_properties as $item_property) { if (!empty($item_property->value)) $content.='
'.$item_property->title.': '.$item_property->value; else    $content.='
'.$item_property->title.''; }    $content.='
'.$item->product->introcontent.'

'.$item->count.'   '.KsenMartHelper::showPriceWithTransform($item->price).'    '.KsenMartHelper::showPriceWithTransform($item->count*$item->price).'
Общая стоимость товаров         '.KsenMartHelper::showPriceWithTransform($order->cost).'
Стоимость доставки:         '.KsenMartHelper::showPriceWithTransform($order->delivery_cost).'
Р?того         '.KsenMartHelper::showPriceWithTransform($order->total_cost+$order->delivery_cost).'
'; $mail =& JFactory::getMailer(); $mail->isHTML(true); $params = JComponentHelper::getParams('com_ksenmart'); $sender = array($params->get('shop_email'), $params->get('shop_name')); $mail->setSender($sender);    $mail->Subject = 'Новый заказ в„–'.$order_id; $mail->Body = $content; $mail->AddAddress($order->email , $order->name); $mail->Send();    } function sendOrderIndoAdmin($order_id) { $dispatcher   = JDispatcher::getInstance(); $db=JFactory::getDBO(); $Itemid=KsenMartHelper::getShopItemid(); $query="select * from #__ksenmart_orders where id='$order_id'"; $db->setQuery($query); $order=$db->loadObject(); $content = ''; $content.='
Р?нформация
Р?РјСЏ:   '.$order->name.'
E-mail:   '.$order->email.'
Адрес доставки:   '.$order->address.'
Заказ

'; $query="select * from #__ksenmart_order_items where order_id='$order_id'"; $db->setQuery($query); $order->items=$db->loadObjectList(); foreach ($order->items as &$item) { $item_properties=array(); $properties=explode(';',$item->properties); foreach($properties as $property) { $property=explode(':',$property); $query="select * from #__ksenmart_properties where id='$property[0]'"; $this->_db->setQuery($query); $prop=$this->_db->loadObject(); if (count($prop)>0) { $item_properties[]=new stdClass(); $item_properties[count($item_properties)-1]->title=$prop->title; if ($prop->type=='select' || $prop->type=='radio') { $query="select * from #__ksenmart_property_values where id='$property[1]'"; $this->_db->setQuery($query); $val=$this->_db->loadObject();    if (count($val)>0) $item_properties[count($item_properties)-1]->value=$val->title.' '.$prop->finishing; } }    }    $query="select * from #__ksenmart_products where id='$item->product_id'"; $db->setQuery($query); $item->product=$db->loadObject(); $link = JURI::root().JRoute::_('index.php?option=com_ksenmart&view=shopproduct&id='.$item->product->id.":".$item->product->alias.'&Itemid='.$Itemid); $content.='    '; } $order->total_cost=$order->cost; $dispatcher->trigger('onAfterGetOrder',array(&$order)); $results=$dispatcher->trigger('onDisplayAfterLetterContent',array(&$order)); $order->onDisplayAfterLetterContent=trim(implode("\n", $results)); $content.=' ';    $content.=$order->onDisplayAfterLetterContent; $content.='
РџСЂРѕРґСѓРєС‚   РљРѕР»-РІРѕ   Р¦РµРЅР°   РЎС‚оимость
'.$item->product->title.' '; if ($item->product->product_code!='') $content.=' РђСЂС‚. '.$item->product->product_code.''; foreach($item_properties as $item_property) { if (!empty($item_property->value)) $content.='
'.$item_property->title.': '.$item_property->value; else    $content.='
'.$item_property->title.''; }    $content.='
'.$item->product->introcontent.'

'.$item->count.'   '.KsenMartHelper::showPriceWithTransform($item->price).'    '.KsenMartHelper::showPriceWithTransform($item->count*$item->price).'
Общая стоимость товаров         '.KsenMartHelper::showPriceWithTransform($order->cost).'
Стоимость доставки:         '.KsenMartHelper::showPriceWithTransform($order->delivery_cost).'
Р?того         '.KsenMartHelper::showPriceWithTransform($order->total_cost+$order->delivery_cost).'
'; $mail =& JFactory::getMailer(); $mail->isHTML(true); $params = JComponentHelper::getParams('com_ksenmart'); $sender = array($params->get('shop_email'), $params->get('shop_name')); $mail->setSender($sender);    $mail->Subject = 'Новый заказ в„–'.$order_id; $mail->Body = $content; $mail->AddAddress($params->get('shop_email'), $params->get('shop_name')); $mail->Send();    } function incProductHit($id) { $db=JFactory::getDBO(); $query="update #__ksenmart_products set hits=hits+1 where id='$id'"; $db->setQuery($query); $db->query(); } function incProductCarted($id) { $db=JFactory::getDBO(); $query="update #__ksenmart_products set carted=carted+1 where id='$id'"; $db->setQuery($query); $db->query(); } static function number2string($n,$rod) //перевести число $n РІ строку. Число обязательно должно быть 0 < $n < 1000. $rod указывает РЅР° СЂРѕРґ суффикса (0 - женский, 1 - мужской; например, "рубль" - 1, "тысяча" - 0). { $n = round($n%1000); $a = floor($n / 100)*100; $b = floor(($n - $a) / 10)*10; $c = $n % 10; if($b==10){ $b = $b+$c; $c = 0; } $s = ""; switch($a){//сотни case 100: $s = "сто";    break; case 200: $s = "двести";    break; case 300: $s = "триста";    break; case 400: $s = "четыреста";   break; case 500: $s = "пятьсот";    break; case 600: $s = "С?естьсот";   break; case 700: $s = "семьсот";    break; case 800: $s = "восемьсот";   break; case 900: $s = "девятьсот";   break; } $s .= ($s&&$b)?" ":''; switch($b){//десятки case 10: $s .= "десять";    break; case 11: $s .= "одиннадцать";   break; case 12: $s .= "двенадцать";   break; case 13: $s .= "тринадцать";   break; case 14: $s .= "четырнадцать";   break; case 15: $s .= "пятнадцать";   break; case 16: $s .= "С?естнадцать";   break; case 17: $s .= "семнадцать";   break; case 18: $s .= "восемнадцать";   break; case 19: $s .= "девятнадцать";   break; case 20: $s .= "двадцать";    break; case 30: $s .= "тридцать";    break; case 40: $s .= "СЃРѕСЂРѕРє";    break; case 50: $s .= "пятьдесят";    break; case 60: $s .= "С?естьдесят";   break; case 70: $s .= "семьдесят";    break; case 80: $s .= "восемьдесят";   break; case 90: $s .= "девяносто";    break; } $s .= ($s&&$c)?" ":''; switch($c){//единицы case 1: switch($rod){ case 0:$s .= "РѕРґРЅР°";break;//Р¶.СЂ. Р?.Рї. case 1:$s .= "РѕРґРёРЅ";break;//Рј.СЂ. Р?.Рї. case 2:$s .= "РѕРґРЅСѓ";break;//Р¶.СЂ. Р .Рї. case 3:$s .= "РѕРґРёРЅ";break;//Рј.СЂ. Р .Рї. } break; case 2: switch($rod){ case 0:$s .= "РґРІРµ";break;//Р¶.СЂ. Р?.Рї. case 1:$s .= "РґРІР°";break;//Рј.СЂ. Р?.Рї. case 2:$s .= "РґРІРµ";break;//Р¶.СЂ. Р .Рї. case 3:$s .= "РґРІР°";break;//Рј.СЂ. Р .Рї. } break; case 3: $s .= "три";    break; case 4: $s .= "четыре";    break; case 5: $s .= "пять";    break; case 6: $s .= "С?есть";    break; case 7: $s .= "семь";    break; case 8: $s .= "восемь";    break; case 9: $s .= "девять";    break; } return $s; } /** * создает строковое представление СЃСѓРјРјС‹. Например $n = 123. * результат будет "Сто двадцать три рубля 00 копеек" * * @param float $amount * @return string */ static function stringView( $amount ) { //разделить СЃСѓРјРјР° РЅР° разряды: единицы, тысячи, миллионы, миллиарды (больС?Рµ миллиардов РЅРµ проверять :) ) $n = round($amount,2); $billions = floor($n / 1000000000); $millions = floor( ($n-$billions*1000000000) / 1000000); $grands = floor( ($n-$billions*1000000000-$millions*1000000) / 1000); $roubles = floor( ($n-$billions*1000000000-$millions*1000000-$grands*1000) );//$n % 1000; //копейки $kop = round ( $n*100 - round( floor($n)*100 ) ); //var_dump(array($n,$billions,$millions,$grands,$roubles,$kop)); if ($kop < 10) $kop = "0".(string)$kop; $s = ""; if ($billions > 0) { $t = "РѕРІ"; $temp = $billions % 10; if (floor(($billions % 100)/10)!= 1) { if ($temp == 1) $t = ""; else if ($temp >=2 && $temp <= 4) $t = "Р°"; } $s .= KsenMartHelper::number2string($billions,1)." миллиард{$t} "; } if ($millions > 0) { $t = "РѕРІ"; $temp = $millions % 10; if (floor(($millions % 100)/10)!= 1) { if ($temp == 1) $t = ""; else if ($temp >=2 && $temp <= 4) $t = "Р°"; } $s .= KsenMartHelper::number2string($millions,1)." миллион{$t} "; } if ($grands > 0) { $t = ""; $temp = $grands % 10; if (floor(($grands % 100)/10)!= 1) { if ($temp == 1) $t = "Р°"; else if ($temp >=2 && $temp <= 4) $t = "Рё"; } $s .= KsenMartHelper::number2string($grands,0)." тысяч{$t} "; } if ($roubles > 0) { $rub = "ей"; $temp = $roubles % 10; if (floor(($roubles % 100)/10)!= 1) { if ($temp == 1) $rub = "СЊ"; else if ($temp >=2 && $temp <= 4) $rub = "СЏ"; } $s .= KsenMartHelper::number2string($roubles,1)." СЂСѓР±Р»{$rub} "; } { $kp = "ек"; $temp = $kop % 10; if (floor(($kop % 100)/10)!= 1) { if ($temp == 1) $kp = "Р№РєР°"; else if ($temp >=2 && $temp <= 4) $kp = "Р№РєРё"; } $s .= "{$kop} РєРѕРїРµ{$kp}"; } /* //теперь сделать первую Р±СѓРєРІСѓ заглавной if ($roubles>0 || $grands>0 || $millions>0 || $billions>0) { $cnt=0; while(substr($s, $cnt, 1)==" ") $cnt++; $s = substr($s, $cnt, 1); $s[$cnt] = chr( ord($s[$cnt])- 32 ); } */ return $s; } function getDiscountString($id) { $db=JFactory::getDBO(); $str=''; $query="select * from #__ksenmart_discounts where id='$id'"; $db->setQuery($query); $discount=$db->loadObject(); if ($discount) { if ($discount->type=='accumulation') { $discount->accumulation=explode(';',$discount->discount); for($i=0;$iaccumulation);$i++) { $discount->accumulation[$i]=explode(':',$discount->accumulation[$i]); $str.=JText::_('from').' '.KsenMartHelper::showPriceWithoutTransform($discount->accumulation[$i][0]).' - '.$discount->accumulation[$i][1].' %
'; } } elseif ($discount->discount_type==0) $str=$discount->discount.'%'; elseif ($discount->discount_type==1) $str=KsenMartHelper::showPriceWithoutTransform($discount->discount); } return $str; } function getShippingDate($shipping_id) { $db=JFactory::getDBO(); $query="select days from #__ksenmart_shippings where id='$shipping_id'"; $db->setQuery($query); $days=$db->loadResult(); $day=date('j',time()+$days*86400); $month=date('m',time()+$days*86400); switch($month) { case '1': $month='января'; break; case '2': $month='февраля'; break; case '3': $month='марта'; break; case '4': $month='апреля'; break; case '5': $month='мая'; break; case '6': $month='РёСЋРЅСЏ'; break; case '7': $month='июля'; break; case '8': $month='августа'; break; case '9': $month='сентября'; break; case '10': $month='октября'; break; case '11': $month='РЅРѕСЏР±СЂСЏ'; break; case '12': $month='декабря'; break; } return $day.' '.$month; } function getUser($id='') { if (array_key_exists($id, self::$_user)){ return self::$_user[$id]; } $db=JFactory::getDBO(); $original_id = $id; if ($id==''){ $id=JFactory::getUser()->id; } if ($id!=0) { $query="select * from #__ksenmart_users as ku,#__users as u where u.id=ku.id and ku.id='$id'"; $db->setQuery($query); $user=$db->loadObject(); if ($user->email==$user->username.'@email.ru') $user->email=''; $matches=array(); if (preg_match('/([a-z][a-z])-([0-9]+)/',$user->username,$matches)>0) { $user->social_name=$matches[1]; $user->social=1; } if ($user->groups!='') { $user->groups=str_replace('||',',',$user->groups); $user->groups=str_replace('|','',$user->groups); $user->groups=explode(',',$user->groups); } else $user->groups=array(); if ($user->watched!='') { $user->watched=str_replace('||',',',$user->watched); $user->watched=str_replace('|','',$user->watched); $user->watched=explode(',',$user->watched); } else $user->watched=array(); if ($user->favorites!='') { $user->favorites=str_replace('||',',',$user->favorites); $user->favorites=str_replace('|','',$user->favorites); $user->favorites=explode(',',$user->favorites); } else $user->favorites=array();    if ($user->region==0) { $session=JFactory::getSession(); $user_region=$session->get('user_region',0); $user->region=$user_region; } $tmp=explode('-',$user->phone); if (count($tmp)==3) { $user->phone_country=$tmp[0]; $user->phone_code=$tmp[1]; $user->phone=$tmp[2]; } else { $user->phone_country='+7'; $user->phone_code=''; $user->phone=''; } $user->logo=$user->logo==''?'media/ksenmart/images/users/default.png':$user->logo; } else { $session=JFactory::getSession(); $user_region=$session->get('user_region',0); $user=new stdClass(); $user->id=0; $user->name=''; $user->username=''; $user->email=''; $user->groups=array(); $user->region=$user_region; $user->phone_country='+7'; $user->phone_code=''; $user->phone=''; $user->address=''; $user->money=0; $user->sendmails=''; $query="select * from #__ksenmart_user_fields order by ordering"; $db->setQuery($query); $fields=$db->loadObjectList(); foreach($fields as $field) $user->{'field_'.$field->id}=''; $user->logo='media/ksenmart/images/users/default.png';    } self::$_user[$original_id] = $user; return $user; } private static $_property_values = array(); private static $_images = array(); private static $_images_products_files = array(); function getProduct($id) { $db=JFactory::getDBO(); $params = JComponentHelper::getParams('com_ksenmart'); $query=$db->getQuery(true); $query->select('p.*,f.filename,f.folder,f.params,m.title as manufacturer_title,u.form1 as unit')->from('#__ksenmart_products as p'); $query->join("LEFT","#__ksenmart_files as f on p.id=f.owner_id and f.owner_type='product'");    $query->join("LEFT","#__ksenmart_manufacturers as m on p.manufacturer=m.id");    $query->join("LEFT","#__ksenmart_product_units as u on p.product_unit=u.id"); $query->where('p.id='.$id); $query->order('f.ordering'); $query->group('p.id'); $db->setQuery($query); $row=$db->loadObject(); if ($row && !empty($row)) { $row->categories=array(); $query=$db->getQuery(true); $query->select('category_id')->from('#__ksenmart_products_categories')->where('product_id='.$id); $db->setQuery($query); $categories=$db->loadObjectList(); foreach($categories as $cat) $row->categories[]=$cat->category_id;    $row->properties = array(); if (count($row->categories)>0) { $query = $db->getQuery(true); $query->select('p.*') ->from('#__ksenmart_properties as p') ->join('inner', '#__ksenmart_product_categories_properties as cp on cp.property_id=p.id') ->where('cp.category_id in('.implode(', ', $row->categories).')'); $db->setQuery($query); $row->properties = $db->loadObjectList('id'); foreach ($row->properties as &$p) { $p->values = array(); } if (!empty($row->properties)){ $in = array_keys($row->properties); $query = $db->getQuery(true); $query->select('ppv.*,pv.title') ->from('#__ksenmart_product_properties_values as ppv') ->join('inner','#__ksenmart_property_values as pv on pv.id=ppv.value_id') ->where('ppv.product_id='.$id) ->where('ppv.property_id in ('.implode(', ', $in). ')'); $db->setQuery($query); $values = $db->loadObjectList(); foreach ($values as $v) { if (isset($row->properties[$v->property_id])) { $row->properties[$v->property_id]->values[$v->value_id] = $v; } } } } if (empty($row->folder)) $row->folder='products'; if (empty($row->filename)) $row->filename='no.jpg';    $query=$db->getQuery(true); $query->select('count(id)')->from('#__ksenmart_products'); $query->where('parent_id='.$row->id); $db->setQuery($query); $row->is_parent=$db->loadResult();    if ($row->product_packaging==0) $row->product_packaging=1; if (round($row->product_packaging)/$row->product_packaging==1) $row->product_packaging=round($row->product_packaging); $row->link = JRoute::_('index.php?option=com_ksenmart&view=shopproduct&id='.$row->id.':'.$row->alias); $row->price=KsenMartHelper::getPriceInDefaultCurrency($row->price,$row->price_type); $row->val_price_wou = KsenMartHelper::getPriceWithDiscount($row->price,2); if ($row->val_price_wou<0) $row->val_price_wou=0; $row->val_price = KsenMartHelper::showPriceWithTransform($row->val_price_wou); $row->old_price=KsenMartHelper::getPriceInDefaultCurrency($row->old_price,$row->price_type); $row->val_old_price_wou = KsenMartHelper::getPriceWithDiscount($row->old_price,2); if ($row->val_old_price_wou<0) $row->val_old_price_wou=0;    $row->val_old_price = KsenMartHelper::showPriceWithTransform($row->val_old_price_wou);    $row->val_diff_price_wou=$row->val_old_price_wou-$row->val_price_wou; $row->val_diff_price = KsenMartHelper::showPriceWithTransform($row->val_diff_price_wou);    $row->mini_small_img=KsenMartHelper::createProductThumb($row->filename,$row->folder,$params->get('mini_thumb_width'),$params->get('mini_thumb_height')); $row->mini_small_img_div_style=KsenMartHelper::getThumbDivStyle($params->get('mini_thumb_width'),$params->get('mini_thumb_height')); $row->mini_small_img_img_style=KsenMartHelper::getThumbImgStyle($params->get('mini_thumb_width'),$params->get('mini_thumb_height'),json_decode($row->params,true),$row->mini_small_img);    $row->small_img=KsenMartHelper::createProductThumb($row->filename,$row->folder,$params->get('thumb_width'),$params->get('thumb_height')); $row->small_img_div_style=KsenMartHelper::getThumbDivStyle($params->get('thumb_width'),$params->get('thumb_height')); $row->small_img_img_style=KsenMartHelper::getThumbImgStyle($params->get('thumb_width'),$params->get('thumb_height'),json_decode($row->params,true),$row->small_img);    $row->img=KsenMartHelper::createProductThumb($row->filename,$row->folder,$params->get('middle_width'),$params->get('middle_height')); if (!empty($row->folder)) $row->img_link = JURI::root().'media/ksenmart/images/'.$row->folder.'/original/'.$row->filename;    else    $row->img_link = JURI::root().'media/ksenmart/images/products/no.jpg';    $row->add_link_cart = KsenMartHelper::getAddToCartLink($row->price,2); }    return $row; } function getProductManufacturer($id) { $params = JComponentHelper::getParams('com_ksenmart'); $db = JFactory::getDbo(); $query=$db->getQuery(true); $query->select('m.*,f.filename,f.folder')->from('#__ksenmart_manufacturers as m'); $query->join("LEFT","#__ksenmart_files as f on m.id=f.owner_id and f.owner_type='manufacturer'");    $query->where('m.id='.$id); $db->setQuery($query); $row=$db->loadObject(); if (count($row)>0) { if ($row->filename!='') $row->img=JURI::root().'media/ksenmart/images/'.$row->folder.'/original/'.$row->filename; $query=$db->getQuery(true); $query->select('*')->from('#__ksenmart_countries'); $query->where('id='.$row->country); $db->setQuery($query); $row->country=$db->loadObject();    }    return $row; } private static $_products_properties = array(); private static $_products_properties_idx = array(); public static function fetchProductProperties($product){ if (empty(self::$_products_properties)){ $db = JFactory::getDbo(); $db->setQuery( "select kp.*, kpp.value, kpp.product, kpp.price,kpp.count,kpp.code FROM #__ksenmart_properties AS kp, #__ksenmart_product_properties AS kpp where kp.id = kpp.property_id AND kp.type != 'checkbox' AND kp.filter_count >0 AND kp.in_filter =1 AND kpp.value != '' ORDER BY kp.ordering" ); self::$_products_properties = $db->loadObjectList('id'); foreach (self::$_products_properties as $k=>$v){ self::$_products_properties_idx[$k] = $v->product; } } $search = $product->id; $keys = array_keys(self::$_products_properties_idx, $search); $ret = array(); if (!empty($keys)){ foreach ($keys as $k){ $ret[] = self::$_products_properties[$k]; } } return $ret; } function getCouponDiscount($price,$coupon_id) { $db=JFactory::getDBO(); $diff=0; $price_with_discount=0; $query="select * from #__ksenmart_discounts where id='$coupon_id'"; $db->setQuery($query); $discount=$db->loadObject(); if (count($discount)>0) { if ($discount->discount_type==1) $price_with_discount=$price-$discount->discount; else $price_with_discount=round($price*(100-$discount->discount)/100,2); $diff=$price-$price_with_discount; } return $diff; } function updateOrderGroupDiscount($order_id) { $db=JFactory::getDBO(); $query="select * from #__ksenmart_order_items where order_id='$order_id'"; $db->setQuery($query); $order_items=$db->loadObjectList(); $group_discount=0; foreach($order_items as $order_item) { //$group_discount+=($order_item->price-KsenMartHelper::getPriceWithDiscount($order_item->price,2))*$order_item->count; $group_discount+=(KsenMartHelper::getPriceWithoutDiscount($order_item->price,2)-$order_item->price)*$order_item->count; } $query="update #__ksenmart_orders set group_discount='$group_discount' where id='$order_id'"; $db->setQuery($query); $db->Query(); } function generateCode($length) { $arr = array('q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'Q', 'W', 'E', 'R', 'T', 'Y','U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); $password = ''; for ($i = 0; $i < $length; $i++) { $index = rand(0, count($arr) - 1); $password .= $arr[$index]; } return $password; } private static $_categories = array(); private static $_categories_children = array(); public function getChildrenCategories($id) { if (empty(self::$_categories)) { $db = JFactory::getDbo(); $db->setQuery("select * from #__ksenmart_categories where published=1 order by parent, ordering "); self::$_categories = $db->loadObjectList('id'); $top_parent = (object) array( 'id'=>0, 'children'=>array() ); self::$_categories_children = array($top_parent); foreach (self::$_categories as $k=>$v){ $v->children = array(); self::$_categories_children[$k] = $v; self::$_categories_children[$v->parent]->children[$k] = $v; } } $ret = array(); $category = self::$_categories_children[$id]; if (!empty($category->children)){ $ret = array_merge($ret, array_keys($category->children)); foreach ($category->children as $child){ $ret = array_merge($ret, self::getChildrenCategories($child->id)); } } return $ret; } public static function createProductThumb($file,$folder, $width=0, $heigth=0,$iparams=array()) { $params = JComponentHelper::getParams('com_ksenmart'); if (!isset($iparams['displace'])) $iparams['displace']=$params->get('displace',0); if (!isset($iparams['watermark'])) $iparams['watermark']=$params->get('watermark',0); if (!isset($iparams['halign'])) $iparams['halign']=$params->get('halign','center'); if (!isset($iparams['valign'])) $iparams['valign']=$params->get('valign','middle');    $dst_file=basename($file); foreach($iparams as $iparam) $dst_file=$iparam.'-'.$dst_file; if (!class_exists('SimpleImage')){ require dirname(__FILE__).DS.'image.php' ; } if ($width === 0) { $width = $params->get('thumb_width'); } if ($heigth === 0 ) { $heigth = $params->get('thumb_height'); } $dst_path_segments = array('media','ksenmart', 'images', $folder, 'w'.$width.'x'.'h'.$heigth); $dst_path = JPATH_ROOT ; foreach ($dst_path_segments as $v){ $dst_path .= DS.$v; if (!JFolder::exists($dst_path)) { JFolder::create($dst_path); chmod($dst_path,0777); } } ($file != '')? $dst_filename = $dst_path.DS.$dst_file: $dst_filename = $dst_path.DS.'no.jpg'; if (!JFile::exists($dst_filename))    { if ($file != '') { $src_filename = JPATH_ROOT.DS.'media'.DS.'ksenmart'.DS.'images'.DS.$folder.DS.'original'.DS.basename($file);    } else { $src_filename = JPATH_ROOT.DS.'media'.DS.'ksenmart'.DS.'images'.DS.$folder.DS .'no.jpg'; } if (!JFile::exists($src_filename)){ $src_filename = JPATH_ROOT.DS.'media'.DS.'ksenmart'.DS.'images'.DS.$folder.DS .'no.jpg'; } $image = new SimpleImage($src_filename); if ($image->get_width()>$width || $image->get_height()>$heigth) { $ratio_in = $image->get_width()/$image->get_height();    if ($iparams['displace']==0) { $ratio_out = $width/$heigth; if ($ratio_in>$ratio_out){ $image->resize((int)$width*$ratio_in, $heigth); } else { $image->resize($width, $width/$ratio_in); } } else    { if ($width/$ratio_in>$heigth) $image->resize($heigth*$ratio_in, $heigth); else    $image->resize($width, $width/$ratio_in); } }    //$image->best_fit($size['w'], $size['h']); if (false) { //$wmimage = new SimpleImage(JPATH_ROOT.DS.'images'.DS.'ksenmart'.DS.'watermark.png') ; //$ratio = $image->get_width()/$wmimage->get_width(); //$wmimage->resize($image->get_width(), (int)$wmimage->get_height()*$ratio); //$wmimage->save($dst_path.DS.'watermark.png'); //TODO: сделать параметры, задаваемые РІ админке //$image->overlay($dst_path.DS.'watermark.png', 'bottom', 0.7); ///$image->overlay(JPATH_ROOT.DS.'images'.DS.'ksenmart'.DS.'watermark.png'); } $image->save($dst_filename); } return JURI::root(). str_replace(JPATH_ROOT.DS, '', $dst_filename); } function getThumbDivStyle($width=0,$heigth=0) { $params = JComponentHelper::getParams('com_ksenmart'); if ($width === 0) { $width = $params->get('thumb_width'); } if ($heigth === 0 ) { $heigth = $params->get('thumb_height'); } $style=array(); $style[]='width:'.$width.'px!important'; $style[]='height:'.$heigth.'px!important'; $style[]='overflow:hidden!important'; $style[]='display:inline-block!important'; return implode(';',$style); } function getThumbImgStyle($width=0,$heigth=0,$iparams=array(),$img) { $params = JComponentHelper::getParams('com_ksenmart'); if (!isset($iparams['displace'])) $iparams['displace']=$params->get('displace',0); if (!isset($iparams['watermark'])) $iparams['watermark']=$params->get('watermark',0); if (!isset($iparams['halign'])) $iparams['halign']=$params->get('halign','center'); if (!isset($iparams['valign'])) $iparams['valign']=$params->get('valign','middle');    if ($width === 0) { $width = $params->get('thumb_width'); } if ($heigth === 0 ) { $heigth = $params->get('thumb_height'); } $sizes=getimagesize($img); switch ($iparams['halign']) { case 'left':$marginL=0;break; case 'center':$marginL=round(($width-$sizes[0])/2);break; case 'right':$marginL=round($width-$sizes[0]);break; } switch ($iparams['valign']) { case 'top':$marginT=0;break; case 'middle':$marginT=round(($heigth-$sizes[1])/2);break; case 'bottom':$marginT=round($heigth-$sizes[1]);break; }    $style=array(); $style[]='margin-left:'.$marginL.'px!important'; $style[]='margin-top:'.$marginT.'px!important'; return implode(';',$style); }    } ?>addItem('','index.php?option=com_ksenmart'); } public static function getInstance() { if (empty(self::$instance)) { $instance = new KsenMartPath(); self::$instance = & $instance; } return self::$instance; }    function addItem($text='',$link='') { $this->path_items[]=array('text'=>$text,'link'=>$link); } } ?>getQuery(true); $query->select('manifest_cache')->from('#__extensions')->where('name="ksenmart"'); $db->setQuery($query); $manifest=$db->loadResult(); $manifest=json_decode($manifest,true); return $manifest[$key]; } function saveSetting($key='',$val='') { $db=JFactory::getDBO(); $query=$db->getQuery(true); $query->select('params')->from('#__extensions')->where('name="ksenmart"'); $db->setQuery($query); $params = json_decode($db->loadResult(),true); if (isset($params[$key])) { $params[$key]=$val; $query=$db->getQuery(true); $query->update('#__extensions')->set('params='.$db->quote(json_encode($params)))->where('name="ksenmart"'); $db->setQuery($query);    $db->Query(); } } }    ?>setQuery($query); $db->Query(); $k++; } } function resizeComponents() { $db=JFactory::getDBO(); $component_size=JRequest::getVar('component_size'); foreach($component_size as $component) { $query="update #__ksenmart_components set size='$component[1]' where id='$component[0]'"; $db->setQuery($query); $db->Query(); } }    function getComponents() { $db=JFactory::getDBO(); $component_type=JRequest::getVar('component_type','trade'); $query="select kc.* from #__ksenmart_components as kc,#__ksenmart_component_types as kct where kct.name='$component_type' and kc.type=kct.id and kc.panel=1 and kc.published=1 order by ordering"; $db->setQuery($query); $components=$db->loadObjectList(); for($i=0;$iname.'.png')) $components[$i]->image=JURI::root().'/media/ksenmart/images/icons/'.$components[$i]->name.'.png'; else    $components[$i]->image=JURI::root().'/media/ksenmart/images/icons/module.png'; } return $components; } }    ?>setQuery($query); $total=$db->loadResult();    $query="select kp.*,(select file from #__ksenmart_images where owner_type=kp.type and owner_id=kp.id order by ordering limit 1) as image from #__ksenmart_products as kp where 1 $where order by kp.$params[sort_type] $params[sort_dir] limit $params[limitstart],$params[limit]"; $db->setQuery($query); $products=$db->loadObjectList();    for($k=0;$ktype}s/"; $products[$k]->val_price = KsenMartHelper::getPriceInDefaultCurrencyWithTransform($products[$k]->price,$products[$k]->price_type);    $products[$k]->val_price_wou = KsenMartHelper::getPriceInDefaultCurrency($products[$k]->price,$products[$k]->price_type);    $products[$k]->img = $IMG_CONNETC."30_30/".$products[$k]->image; }    } }    ?>get('license'); return self::curlResponse(self::UPDATE_SERVER.'?action=check_license&license='.$params->get('license','').'&domen='.$_SERVER['HTTP_HOST']); } function checkUpdates() { $db=JFactory::getDBO(); $core_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=core&name=ksenmart'); $core_current_version=KMCommonFunctions::getManifest('version'); if ($core_newest_version!=$core_current_version) return true; $query="select name,version from #__ksenmart_components";    $db->setQuery($query); $components=$db->loadObjectList(); foreach($components as $component) { $component_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=component&name='.$component->name); if ($component->version!=$component_newest_version)    return true; } $query="select name,version from #__ksenmart_modules";    $db->setQuery($query); $modules=$db->loadObjectList(); foreach($modules as $module) { $module_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=module&name='.$module->name); if ($module->version!=$module_newest_version)    return true; }    return false; } function getUpdates() { $db=JFactory::getDBO(); $updates=array(); $core_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=core&name=ksenmart'); $core_current_version=KMCommonFunctions::getManifest('version'); if ($core_newest_version!=$core_current_version) $updates[]=array('type'=>'core','name'=>'ksenmart','current_version'=>$core_current_version,'new_version'=>$core_newest_version); $query="select name,version from #__ksenmart_components";    $db->setQuery($query); $components=$db->loadObjectList(); foreach($components as $component) { $component_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=component&name='.$component->name); if ($component->version!=$component_newest_version)    $updates[]=array('type'=>'component','name'=>$component->name,'current_version'=>$component->version,'new_version'=>$component_newest_version); } $query="select name,version from #__ksenmart_modules";    $db->setQuery($query); $modules=$db->loadObjectList(); foreach($modules as $module) { $module_newest_version=self::curlResponse(self::UPDATE_SERVER.'?action=get_last_version&type=module&name='.$module->name); if ($module->version!=$module_newest_version)    $updates[]=array('type'=>'module','name'=>$module->name,'current_version'=>$module->version,'new_version'=>$module_newest_version); }    return $updates;    } function updatePart($component,$active) { if ($component!='') { $db=JFactory::getDBO(); $query="select value from #__ksenmart_settings where name='update_parts'";    $db->setQuery($query); $update_parts=$db->loadResult(); if ($active==1) $update_parts.=$component.';'; else    $update_parts=str_replace($component.';','',$update_parts); $query="update #__ksenmart_settings set value='$update_parts' where name='update_parts'";    $db->setQuery($query); $db->query();    } } function downloadUpdateKsenmart() { $params = JComponentHelper::getParams('com_ksenmart'); $license = $params->get('license');    $postdata = http_build_query( array( 'versions' => KMUpdaterFunctions::serializeVersions() ) ); $update=self::curlResponse(self::UPDATE_SERVER.'?action=get_update&license='.$license.'&domen='.$_SERVER['HTTP_HOST'],$postdata); if ($update!='false') { header("Content-type: application/zip"); header("Content-Disposition: attachment; filename=update".date('-Y-m-d-H-i-s').".zip"); echo $update; } return false; }    function updateKsenmart() { $params = JComponentHelper::getParams('com_ksenmart'); $license = $params->get('license');    $postdata = http_build_query( array( 'versions' => KMUpdaterFunctions::serializeVersions() ) ); $updates_dir=JPATH_COMPONENT.'/tmp/updates/'; $update=self::curlResponse(self::UPDATE_SERVER.'?action=get_update&license='.$license.'&domen='.$_SERVER['HTTP_HOST'],$postdata); if ($update!='false') { JFolder::delete($updates_dir);    JFolder::create($updates_dir,0777); $update_zip=$updates_dir.'update'.date('-Y-m-d-H-i-s').'.zip'; file_put_contents($update_zip,$update); $zip = new ZipArchive; $result = JArchive::extract(JPath::clean($update_zip), JPath::clean($updates_dir)); if (file_exists($update_zip)) unlink($update_zip); $updates=scandir($updates_dir);    foreach($updates as $update) { if ($update!='.' && $update!='..') { $update_dir=str_replace('.zip','',$update); JFolder::create($updates_dir.$update_dir,0777);    $result = JArchive::extract($updates_dir.$update, $updates_dir.$update_dir); if (file_exists($updates_dir.$update_dir.'/install.php')) include($updates_dir.$update_dir.'/install.php'); JFolder::delete($updates_dir.$update_dir);    if (file_exists($updates_dir.$update)) unlink($updates_dir.$update); } } } return false; } function serializeVersions() { $db=JFactory::getDBO(); $versions['ksenmart']=KMCommonFunctions::getSettingsValue('version'); $query="select name,version from #__ksenmart_components";    $db->setQuery($query); $components=$db->loadObjectList(); foreach($components as $component) $versions[$component->name]=$component->version; $query="select name,version from #__ksenmart_modules";    $db->setQuery($query); $modules=$db->loadObjectList(); foreach($modules as $module) $versions[$module->name]=$module->version;    return serialize($versions); }    function updateComponentVersion($component,$version) { $db=JFactory::getDBO(); $query="update #__ksenmart_components set version='$version' where name='$component'"; $db->setQuery($query); $db->query(); } public static function sendShopEmail() { $params = JCompon
« Последнее редактирование: 15.06.2013, 19:13:08 от ifx »
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Проблемы при установке
« Ответ #23 : 15.06.2013, 19:09:55 »
*

ifx

  • Осваиваюсь на форуме
  • 28
  • 4 / 0
Re: Проблемы при установке
« Ответ #24 : 15.06.2013, 19:23:11 »
http://joomlaforum.ru/index.php/topic,266738.msg1339256.html#msg1339256
Капец. Заработало наконец. Большое спасибо!
А то блин, ни системных требований, ни ФАКа с ошибками, ничего нет, сиди гадай, что где когда.

еще раз спасибо.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Проблемы при установке
« Ответ #25 : 15.06.2013, 19:27:33 »
А то блин, ни системных требований, ни ФАКа с ошибками, ничего нет, сиди гадай, что где когда.

Ну так тема есть - можете там высказать своё мнение
*

St@lker

  • Захожу иногда
  • 79
  • 0 / 0
Re: Проблемы при установке
« Ответ #26 : 31.10.2013, 18:47:39 »
При попытке установить последнюю актуальную версию на Joomla 1.5 - Ошибка! Не найден XML-файл установки Joomla!

Данный вопрос снимается, т.к. не работает на 1.5. Только сейчас заметил.

При попытке установки на J.2.5.x - просто белый экран. Как бы ничего не происходит ...

В обоих случаях файлы не создаются, в базу ничего не пишется.
*

ldmco

  • Moderator
  • 267
  • 28 / 1
  • ksenmart.ru
Re: Проблемы при установке
« Ответ #27 : 30.11.2013, 15:32:23 »
При попытке установить последнюю актуальную версию на Joomla 1.5 - Ошибка! Не найден XML-файл установки Joomla!

Данный вопрос снимается, т.к. не работает на 1.5. Только сейчас заметил.

При попытке установки на J.2.5.x - просто белый экран. Как бы ничего не происходит ...

В обоих случаях файлы не создаются, в базу ничего не пишется.

Надеяться что будет работать на 1.5 даже не стоит :)
А вот по поводу 2.5 должно работать, вообще на днях выпускаем бетта версию третей версии Ксенмарта, она более грамотная. Но пока еще сыровата. Если есть жгучие желание запустить именно ту что в паблике лежит, пишите в личку. У вас видимо что-то особенное на хостинге. У всех все ставится.
Я отвечаю на все сообщения, просто на некоторые - устно :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка 500 при установке на Windows Server

Автор Mishanya_V

Ответов: 0
Просмотров: 1723
Последний ответ 08.06.2016, 21:10:08
от Mishanya_V
Проблемы с установкой

Автор jurassik

Ответов: 45
Просмотров: 9154
Последний ответ 07.03.2015, 17:32:59
от Smith2007