Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Raino

Користувачі
  
  • Публікації

    102
  • З нами

  • Відвідування

Технічна підтримка

  • Робочі дні
    Пн
    Вт
    Ср
    Чт
    Пт
  • Вихідні дні
    Сб
    Вс
  • Робочий час
    10:00 - 01:00 GMT+3
  • Статус
    Работаю

Інформація

  • Стать
    Мужчина

Відвідувачі профілю

10 922 перегляди профілю

Raino's Achievements

Collaborator

Collaborator (7/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Reacting Well Rare
  • Week One Done

Recent Badges

26

Репутація

  1. Когда эти функции отключены остается только кеш браузера, который сбрасывается через ctrl f5. Если мешает файловый кеш, то можете временно в библиотеке кеша оставить только return false для функции get
  2. В этом и есть смысл нормального чпу формирователя (SeoPro) например. Единый путь для товара на сайте позволяет избежать дублей (когда один и тот же контент доступен по разным ссылкам), поэтому Вы описываете штатное и правильно работающее поведение SeoPro. Если это вызывает некие проблемы, можете просто отключить отображение категорий в чпу товара в настройках, товарные чпу тогда будут иметь вид сайт/товар, а не сайт/категория/товар.
  3. Еще есть вариант для видео с ютуба и аналогичных сервисов подгружать айфрем "полуавтоматически" не сразу при загрузке страницы, а например после скролла на х пикселей вниз. Боты не выполняют действия, фрейм не подгружают, оценку не снижает, а человек, получит нужный контент. Аналогично можно и с картами делать или любыми тяжелыми вещами, которые нужны не сразу, на первом экране, но на странице гарантированно нужны. Так можно мобильные пузомерки до 95-97 выгонять. В тексте просто ставите метку вида <div class=video-frame" data-video-src="код видео на ютубе"></div> ну и вешаете скрипт, который будет туда фрейм подгружать по событию- позволит не заморачиваться с картинкой-превью.
  4. Есть старая байка на эту же тему. Однажды Джеймса Уатта пригласили найти неисправность в большой паровой машине. Так как хозяева из-за простоя несли большие убытки, и другие инженеры сделать ничего не смогли, они пригласили самого изобретателя паровой машины и обещали заплатить 100 долларов, огромные деньги по тем временам. Уатт трижды обошел вокруг машины, потом попросил большую кувалду. Ему принесли кувалду, он примерился и ударил по кожуху машины. "Теперь запускайте", — сказал он. Машина заработала. После этого начинается самое интересное. Хозяевам стало жалко платить 100 долларов за один удар кувалдой, они чувствовали себя одураченными. Тогда они решили схитрить и предложили Уатту написать счет, чтобы затем его попытаться оспорить. Уатт взял лист бумаги и написал следующее. За удар кувалдой — 1 доллар, за знание, куда ударить — 99 долларов. Хозяева была вынуждены выплатить гонорар полностью. Так и здесь. Правка\доработка может быть всего в один символ, но нужно знать, где его поставить\убрать.
  5. Работая по почасовой ставке Вам оплачивают не фактически затраченное время проведенное за клавиатурой. В данном случае час это не столько единица времени, сколько единица оценки сложности задачи. Вот если Вы боженька кода и способны по дизайнерским макетам ровно за час под ключ сделать роскошный магазин, Вам должны оплатить всего лишь час реально затраченной работы? Сомневаюсь. Схема довольно простая. Вы определились с заказчиком, что сложность задачи 5 часов, по тарифу Х за час, на этом всё, больше никого ничего волновать не должно, именно эти 5 часов по оговоренной ставке будут оплачены. В реальности вы можете затратить на них 2 недели реального времени - и это будет только Ваша проблема, что Вы некорректно оценили сложность задачи, ровно так же как если Вы затратите на 5 часовую задачу 10 минут (например, если Вы уже решали ранее такую задачу и у Вас есть готовое решение, которого нет у других и которое нужно только адаптировать и т.д.), а остальное время пили кофе - это опять же Ваше личное дело и заказчика это не должно волновать. И это НУЖНО объяснять заказчику. Если заказчик даже после объяснения не понимает эти моменты и начинаются разговоры в стиле "а вдруг Вы будете не работать а в носу ковырять, а я Вам за это платить" - просто не работайте с ним, сэкономите и себе и человеку кучу нервов. Для исполнителя очень важно уметь корректно оценить сложность задачи, не пытайтесь задвинуть десяток часов про запас. Конечно, бывает всякое и если в ходе работы всплывут новые факты, которые сильно усложняют процесс (например вы нашли куски кода злого индуса, который пытался что-то делать за Вас и нужно сперва "исправлять исправленное" - сообщите об этом заказчику, объясните в чем сложность, практически всегда Вам пойдут на встречу. Не относитесь к заказчикам как к идиотам, им вполне можно в общих чертах рассказать о том, что будет сделано и как и почему х займет больше чем у. Если у Вас будут неадекватные оценки сложности, поверьте, это очень быстро всплывает, заказчику достаточно просто попросить прикинуть время у пары других исполнителей, и если у трех человек оценка будет 4-5 часов, а у одного 20-30, тот тут все будет предельно ясно.
  6. Проверьте в используемых методах оплаты, какой у них указан статус после оплаты.
  7. Если я правильно понимаю, он у Вас отдает не ошибку, а 302-й редирект. Если проявляется только при активном suhosin, то проверьте в конфиге раздел suhosin.filter.action, может у Вас там некие совсем нестандартные настройки.
  8. Не рекомендую. Внешне красивые, а внутри- каша. Встречал прямо в контроллерах и tpl куски кода, которые копируют функционал имеющихся моделей (выборка категорий, идиотское построение хлебных крошек и т.д.). Не стоит никакая красота такого бардака.
  9. Raino

    2 и 3

    Тон больно борзый у топикстартера "мне в лом читать топик, где все разжовано, я спрашивал не совета, бистра мне ответил" и т.д., это что за формат общения? Ну так и отвечать такому чОткому поцыку наверняка тоже "влом" порядочным гражданам. Вообще удивительно, что такой конкретный персонаж не семки щелкает в подворотне, а постит что-то на данном ресурсе. Но я по доброте душевной Вам отвечу, в доступной фанатам абибаса форме, сообразно Вашему образу мышления: 3 отличается в лучшую сторону самым главным параметром и вообще всем остальным. Там релиз на целую единицу больше, 3 по определению круче 2, а еще там модный магазин дополнений и сможете хвастаться крутым словом TWIG, использовать нужно строго самую новую версию (даже из альфа билда и не смотреть на красный ярлык "НЕ ИСПОЛЬЗОВАТЬ В ПРОДАКШЕНЕ", ставится то в 1 клик!), так как не просто так она появилась, это также верно, как и то что win 8 надо было использовать вместо win 7. В общем, смело берите тройку, никого не слушайте, не читайте многостраничные топики со сравнением "ибо влом" и дальше выгибайте пальцы, а потом завозите деньги чемоданами на исправление детских болезней самой новой и лучшей версии. P.S. для всех остальных читателей, которым интересен данный вопрос и они случайно наткнулись на эту ветку - если хотите получить информацию о существенных различиях между второй и третьей версиями движка - все же ознакомьтесь с соответствующей веткой на этом форуме, там много информации о различиях версий, анализ и сравнение изменений. Если кратко - для простого пользователя тройка в данный момент не даст никаких существенных преимуществ в плане производительности или удобства работы, т.к. в плане работы с базой практически ничего не изменилось, все существенные изменения связаны с витриной, да и их однозначно положительными я лично не назову.
  10. Where итоговое должно идти после всех joinов. у вас оно в середине запроса да еще и в кол-ве двух штук. Должно быть так (если в самих джоинах нет ошибок): SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id)  LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27
  11. Journal определенно приносит бабки, даже разработчикам. Т.к. работа с этим шедевром лично у меня идет по тарифу х2 (хотя иногда хочется х20 ставить, за ментальное изнасилование). С третьим видимо придется ставить х30. Плюс людям иногда хочется странного... Кто-то плетки, наручники и кожаные костюмчики покупает, а можно просто попытаться поработать с этим поделием. Не поставить и сидеть на том, что есть из коробки, а именно попытаться впихнуть в него некий желаемый клиентом функционал, которого в нем изначально нет - масса незабываемых впечатлений обеспечена. Эдакое садо-мазо для мозга. И дело даже не только в том, что это уже не опенкарт - у него и на морде бреда полно. Помню, как на ранних версиях второго джорнала браузер раком вставал при кол-ве товара всего-лишь за 50, т.к. чтобы при наведении на плашку товара, повысить ее z-index использовалась функция, пробегающая по всем dom элементам, выискивая наибольшее значение, увеличивало его на единичку и вешало плашке. Прекрасный шаблон, "надежный, как швейцарские часы".
  12. Самое простое и бесплатное- это именно проставлять порядок сортировки нужному товару. Каждому товару в каталоге его проставлять нет необходимости. Поле позволяет ставить отрицательные значения, и если у всех прочих товаров стоит по умолчанию порядок 0, то желаемому ставите -1 и он будет выше прочих. Когда это перестало быть актуальным - поставили ему снова 0 и всё.
  13. Интересная позиция. А если заказчик попросил поправить некий баг, который мешал ему жить и работа заключается именно в поиске и устранения ошибки присутствующей в сборке изначально, но с которой столкнулся первый именно он, то значит нигде нельзя постить багрепорт о ней, чтобы она была исправлена в сборке? Он ведь заплатил, зачем ее исправлять глобально или постить на форумах решение - это ведь будет не честно по такой логике, т.к. кто-то ранее за эту работу уже заплатил, а теперь другие получат бесплатно, так получается?
  14. Если Вы недавно ничего не меняли в контрольной панели хостинга, не создавали там почтовый домен, не пытались его самостоятельно настраивать и т.д., то могу посоветовать гвоздь в голову вбить техподдержке, если она не видит проблему со своей стороны, 2 и 3 строка в приведенном логе четко описывает проблему. Почта делегирована на внешний сервер, на него указывают mx записи и т.д. и при этом на хостинге естественно находится одноименный домен. При отправке сообщения из магазина хост не отправляет его на тот внешний почтовый сервер, куда делегирована почта, не проверяет mx записи, а просто шлет его сам себе, т.к. имеет это же доменное имя и сам себе отвечает, что у него такого почтового ящика нет. Поэтому, когда указываете в настройках другие почтовые ящики - письма идут отлично, т.к. сервер перестает направлять их сам себе и по этой же причине если отправить на эти доменные ящики письма не их магазина, а из любого другого источника- они доходят. И если раньше этого не было, а сейчас есть, значит хостер (если Вы сами ничего не меняли в панели хостинга) "меняя настройки" доменялся эти самые настройки и почтовика в придачу. И еще ТП можете сообщить что функция php mail() не требует никаких особых данных для простой отправки, которые могут быть "указаны неверно", кроме исходящего мыла, которое проблематично указать неверно. Более того, они даже в приведенном тесте проверяют вообще не тот случай, который вызывает проблему. Если бы они через свой тест скрипт отправили мыло не на некий гмейловский адрес, а на тот, куда блин письма у Вас не доходят в логе, т.е. на [email protected] - получили бы ту же самую ошибку. Если техподдержка все равно не в состоянии будет решить проблему то гуглить на предмет XXX disable local delivery, где XXX - используемая для отправки служба, в данном случае это судя по логу exim.
  15. Если увеличиваете время жизни через session_set_cookie_params(XXX, '/') то все сессии умирают сразу в момент создания, т.к. на 2.3 есть ошибка в установке сессионной куки. В этом файле есть код вида if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } В нем время жизни куки устанавливается неверно. Правильно так if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, time() + ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } либо же напрямую указать желаемое время ХХХ в секундах, если по каким-то причинам нет возможности изменить параметр session.cookie_lifetime. if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, time() + XXX, ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); }
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.