от чего такое может быть: подключаю PHPExcel и мне выдает "При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php", но у меня включен показ ошибок в этом файле. правда ощущение что этот файл вообще не видит битрикс. я в нем могу менять все что хочу результата не будет. в чем может быть затык?
я не знаю что именно(у меня по ссылке страница с каталогом открывалась ~10сек, а другие моментом), поэтому и сказал, чтобы понять для этого самое простое отключить фильтр и посмотреть в каком направлении искать - этот вариант поиска я использовал на своем сайте(руцентр также ругался, даже забанил) оказалось что небольшие переделки в фильтре(у меня) сказались оочень плохо
Аналогичный вопрос как у "multeg" есть товары , а есть предложения (SKU) как сделать фильтр по цене и количеству если все это у предложений, а не товара?
indexer
{
mem_limit = 32M
}
searchd
{
listen = 127.0.0.1:9312
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinx
}
source art
{
type = mysql
sql_host = localhost
sql_user = имя пользователя базы
sql_pass = пароль пользователя базы
sql_db = база
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER SET utf8
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM documents WHERE id=$id
}
index имя папки сами придумайте, у меня по названию сайта(site)
{
#main settings
source = art (это название настроек базы - см. выше source)
type = rt
path = /var/lib/sphinx/имя папки
docinfo = inline
#choose appropriate type of morphology to use
#morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru
morphology = stem_enru, soundex
#these settings are used by bitrix:search.title component
dict = keywords
prefix_fields = title
infix_fields=
min_prefix_len = 2
enable_star = 1
#all fields must be defined exactly as followed
rt_field = title
rt_field = body
rt_attr_uint = module_id
rt_attr_string = module
rt_attr_uint = item_id
rt_attr_string = item
rt_attr_uint = param1_id
rt_attr_string = param1
rt_attr_uint = param2_id
rt_attr_string = param2
rt_attr_timestamp = date_change
rt_attr_timestamp = date_to
rt_attr_timestamp = date_from
rt_attr_uint = custom_rank
rt_attr_multi = tags
rt_attr_multi = right
rt_attr_multi = site
rt_attr_multi = param
#depends on settings of your site
# uncomment for single byte character set
charset_type = sbcs
# uncomment for UTF character set
#charset_type = utf-8
}
у меня был вариант когда в 1с структура раздел внутри элемент, а на сайте разделы вложенные сделал так после 1 обмена(чтобы получить правильные внешние коды) вручную сделал распределение какой раздел какому принадлежит и далее в init.php
Код
<? //при обращении из 1с идет запрос ['type']=='catalog'
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate","SaveMySection");
function SaveMySection(&$arFields)
{
if ($_REQUEST['type']=='catalog')//импорт из 1с?
{
unset($arFields['IBLOCK_SECTION_ID']);
}
}?>
далее перемещений никаких нет. у вас же будет просто элементам без каталога меняться id раздела которому они должны принадлежать
есть инфоблок с товарами, у этого инфоблока есть свойство место (привязка к элементам другого инфоблока). у элементов инфоблока место есть свои свойства как написать фильтр для товара по значению свойств привязанного места? чтобы получить значения товаров я делаю так
нет, если он изменился, значит кто-то что-то делал на сайте с компонентами, настройками. пример: напрмую через тот же тотал командер вручную внесли какое-то правило, затем решили изменить настройки компонента у которого включена галочка чпу и готово - ваших данных в файле не будет, он перезапишется
if ($ar["CATALOG_GROUP_ID"]==1){$cp->Update($ar["ID"], $arPrice); $upolok1=true;}
elseif ($ar["CATALOG_GROUP_ID"]==2){$cp->Update($ar["ID"], $arPrice1);$upolok2=true;}
elseif ($ar["CATALOG_GROUP_ID"]==3){$cp->Update($ar["ID"], $arPrice2);$upolok3=true;}
а дальше те которые обнулились/не записались добавил через $cp->Add() - (это в принципе 1 и 2, так как id=3 идет последним и обновляется) техподдержка предложила еще вариант через ccataloggroup
вариантов решения много, я приводил уже одно из решений, могу привести еще одно дублируете свойства у элементов, настраиваете внешний вид на 2 версии, но статические страницы вам все-равно придется дублировать. устанавливаете сессию/куки с указанием языка и подгружаете только те свойства/страницы какие необходимы при установленных куках/сессии. а то что в openCart по другому, то это и другая система управления сайтом, там по другому хранится информация.
есть товар у товара есть базовая цена(id=1) и еще 2 типа(id=2 и id=3) как правильно написать $arFields чтобы обновить все типы цен? если последовательно использовать 3 update ничего не получается - остаются только те данные которые заносятся последними. и вот я в ступоре
В хедере или перед компонентом, который отвечает за добавление товара в корзину сделайте обработку на PHP
мы уже в корзине, товар добавлен, а теперь человек меняет количество и нажимает заказать/оформить - если нажмет пересчитать, то можно в компоненте перехватить реквест и сделать так как вы говорите, а когда идет дальше оформление(имя, адрес, доставка...) я найти не могу где перехват сделать
В корзине указывается не количество товара, а метраж. включена опция дробное значение в поле количество, но клиенты начали жаловаться что заказывают к примеру 1,2 а в заказе 1 предоставляется. Выяснилось, что если указывать разделитель точку, то все хорошо, а если запятую, то все плохо. Как их можно приравнять? Чтобы не важно было ввел точку или запятую.
Ситуация такая: При заказе почтовый шаблон выглядит не ахти, хочется чтобы было не в таком виде
Цитата
Состав заказа: 211/41011 - 1.00 шт.: 2 250,00 р.
а в виде красивой таблички, наподобие корзины, где в каждой ячейке расписано - название, цена, количество ... в итоге я сделал через обработчик OnOrderNewSendEmail - получил все свойства, распихол их в таблице - все хорошо... пока не будешь добавлять заказы из админки. обработчик не перехватывает это событие. и у меня письмо приходит в виде
Цитата
Местоположение #EXT_LOCATION# Адрес доставки #EXT_ADDRESS#
может кому поможет: еще играет роль имя владельца и группы в настройках доступа папки/файла Если PHP как CGI / FastCGI, то имя владельца и группы совпадают если нет, то в большинстве случаев группа устанавливается apache
Если правильно понимаю вы хотите сделать аля еще товары? для этого в такой же компонент отправляете данные, а они не отрабатывают. Я для этого после фильтра поставил global $arrFilter; и тогда в него получите оригинальный массив. Ну дальше его можете в аякс отправлять.
есть работающий сайт, собираемся перенести его на другой хостинг + всякие доработки и прочее делаю бекап переношу , делаю то, что нужно, а теперь прежде чем переключить днс необходимо перекинуть заказы с работающего на новый. как это сделать проще всего? нужны только заказы чтобы не обновить ничего больше
Вариант 2 - меняйте надпись на кнопках js'ом и не мучьте компонент.
если бы только надписи, а тут нужно и местоположение поменять и свойства какие-то скрыть, а какие-то отразить, я же уже об этом сказал так что каждый элемент где-то формировать и делать подмену не лучший вариант чем я использую
Цитата
Ну проверяйте пуст ли массив с айдишниками "В корзине" и отключайте кэш компонента если это не так. Будет кэшироваться компонент где корзины только пустые.
и если пользователь закинул в корзину 5 товаров ушел бродить по сайту или совсем с сайта(потом типа закажу) то тут на каждый его шаг будет действительно делаться куча запросов вместо того чтобы для его случая кеш выдавать - уж лучше на мой взгляд кеш будет побольше чем после 10 таких посетителей хостер на мозги капать начнет
У вас получится, что на каждый набор идентификаторов товаров в корзине будет новый файл кеша catalog.section.
да увы, но для того чтобы пользователю отобразить актуальный вариант приходится на это идти, а потом для 100-300 посетителей в день это не так уж и страшно я считаю. и потом по вашим словам выходит что если я буду в шаблоне использовать такие параметры как количество товара - это это тоже мне очень как загрузит весь кеш и соответсвенно пользоваться этим нежелательно особенно если товаров по 1-2 позиции??
а так если у вас есть другое предложение как реализовать такой вариант какой мне нужен, подскажите. я только спасибо скажу. только не забудьте учесть что человек пришел на сайт, закинул товары в корзину, потом пошел бродить по сайту за пределами каталога, потом вернулся и ему должно отображаться все актуально - те товары которые в корзине по одному виду, те которых нет по другому, и причем тогда когда он только что закинул и когда вернулся побродив по сайту. при этом он может передумать и что-то добавть в корзину или удалить не переходя в саму корзину
решил раз мне нужно получить до, а у меня перезагрузка страницы, то кто мне мешает действительно получить данные до самого компонента, а в компонент передать только массив id - соответсвенно в шаблон придет массив $arParams["KORZINKA"], а дальше уже дело простое так как кеш на $arParams не влияет
это я знаю, просто очень много всего нужно поменять при добавлении в корзину начиная от внешнего вида, заканчивая данными которые нужно отобразить(те которых не было, а какие-то скрыть наоборот), поменять местоположения, добавить удалить из карзины и прочее. поэтому если бы получить до отображения шаблона можно было бы шаблон разделить на 2 части и под каждый элемент свою часть показывать