Переопределение функции в /components/virtuemart/helpers/shopfunctionsf.php

2 мес. 4 дн. назад #9477 от Олег
Здравствуйте, уважаемые. Вопрос, может, кто=-то знает.
В указанном в теме файле есть функция public static function sendVmMail (&$view, $recipient, $noVendorMail = FALSE). Она использунтся для рассылки счетов, оповещений и прочего в Virtuemart. Так вот, мне надо её поменять. То есть, я сам поменял. Например 1)Мне надо, чтобы всегда добавлялся получатель "admin@моймагазин". И, главное 2)Там неправильно на сегодняшний момент формируется Тема письма.
$subject = (isset($view->subject)) ? $view->subject : vmText::_( 'COM_VIRTUEMART_DEFAULT_MESSAGE_SUBJECT' );
$subjectMailer= '=?utf-8?B?'.base64_encode($subject).'?=';
$mailer->setSubject( html_entity_decode( $subjectMailer , ENT_QUOTES, 'UTF-8') );
Сейчас две последние строки не надо и правильно - просто:
$mailer->setSubject( $subject );
Иначе почта приходит в любой клиент, что на компе, на Gmail/Ukr.net, как
=?utf-8?B?W0VIN0YwN10sINCX0LDQvNC+0LLQu9C10L3QvdGPINC/0YDQuNC50L3Rj9GC0L4g0LIgwqvQktC10YIg0JXQutGB0ZbQvMK7ICwg0ZbQvdGC0LXRgNC90LXRgi3QvNCw0LPQsNC30LjQvSDQstC10YLQtdGA0LjQvdCw0YDQvdC+0LPQviDQvtCx0LvQsNC00L3QsNC90L3Rjywg0L3QsCDRgdGD0LzRgyAzMDAwLDAwIOKCtA==?=

Так вот, сейчас Лжумла хочет обновиться до новой версии и скоро Virtuemart тоже захочет. И если файлы вывода я могу поместить в шаблон, то что делать с эрой функцией - ума не приложу. Может, кто-то подскажет?
Спасибо.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 4 дн. назад #9478 от Wedal
Олег, есть разные варианты, но нет какого-то универсального, волшебной пилюли - у каждого будут побочки.

1) Вы можете сделать плагин, который будет в заданной папке искать файлы переопределенных классов и заменять методы из них. Это позволит обойти хаки, но после обновления все равно нужно будет следить, что в методах не появилось чего-то такого, чего там не было раньше (разработчик же тоже вносит изменения в свое расширение, исправляет ошибки).

2) Можно сделать хак. Здесь не все так страшно, главное делать для себя подробную документацию по хакам и не увлекаться ими. Баг с заголовком письма я решил тоже только через хак. Позже, думаю, его исправят в VM4. После обновления хаки просто восстанавливайте по своим инструкциям и всё. Это не занимает много времени, да и обновления не так часто ставятся.

3) Можно попытаться найти триггер плагина, который позволил бы обойти это место кода. Но это сложно и не всегда возможно.

P.S.: "Лжумла" - хорошая опечатка получилась)

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 3 дн. назад #9479 от Олег
Спасибо, Wedal. Я как-то так и предполагал :( Буду эту функцию после каждого обновления вкидывать в тойт файл из бэкапа.
А ещё вопрос, может встречались с таким. Я сначала не добавлял языковые файлы и админка магазина была английской. Хотя я и указал, что магазин - на двух языках, укр. и рус. Добавил метод доставки "Самовывоз" и метод оплаты "наличкой при получении". Потом установил языки, админка стала на русском. Я добавил "доставку Новой Почтой" и "выставление счёта для оплаты безналом". Всё, оно теперь не грузится и не меняется. Посмотрел таблицы - там всё правильно записано в обоих таблицах, РУ и УА. Но если в админке нажимаешь редактировать метод оплаты или доставки - крутится иконка аж до Timed Out. Весь инет прошерстил - небыло такого ни у кого и что делать - фиг его знает :( Включил режимы отладки - нет никаких ошибок :(

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 2 дн. назад #9480 от Wedal
Олег, вот это уже не подскажу. Но вообще обычно админка на каком-то одном языке всегда. А уже на сайте можно менять язык. Но полноценную мультиязычность в каталоге товаров VM делать не советую. Сделать ее по уму даже просто в Joomla - это очень большая история, а если туда еще и VM приплести, то страшно представить. Если очень нужен перевод на другие языки, можно поставить модуль Google-переводчика, который будет переводить хоть и не так качественно, но вполне сносно чтобы можно было пользоваться сайтом на выбранном языке.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 2 дн. назад - 2 мес. 2 дн. назад #9481 от Олег
Я много сайтов сделал на Джкмле мультиязычнвх. Всё работает. А, вот, с Virtuemart - первый. Да я думаю, что языки не при чем. Просто какой-то глюк в админке ВМ. Просто в phpMyAdmin пока поправил и всё. Фигово, что, например, по Джумле, ModX, OpenCart есть телеграм чаты, в которых можно что-то спросить, если сутки не получается что-то сделать, а по ВМ - нет такого. Нет, я понимаю, что сделаю один и на большинство вопросов ответі будут, но єто ж надо сделать... :)
Вот есть один-единстаенный Vendor. И каким-то образом его Условия предоставления услуг, Terms of Services, выглядят в URL как
/ukr/4shoppers/terms-of-service/%D0%B2%D0%B5%D1%82-%D0%B5%D0%BA%D1%81%D1%96%D0%BC-,-%D1%96%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D0%B2%D0%B5%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BE%D0%B1%D0%BB%D0%B0%D0%B4%D0%BD%D0%B0%D0%BD%D0%BD%D1%8F/tos

Примчем, я понимаю, что /ukr/ -- язык; 4shoppers - меню первого уровня, главное; terms-of-service -- меню второго уровня, где и должны показываться Условия. Но нет, ВМ зачем-то добавляет описание магазина (причем, каким-то образом, старое, которое сейчас выглядит совсем не так) и снова сточку tos. Как исправить - не представляю. Ну, сделаю отдельную страничку и туда скопирую все эти условия, что ж делать. Но это же не правильно! Как-то же можно показать эти условия, которые в свойствах магазина прописаны! И хрен его знает, где алиас единственного вендора прописать. И нет ответа на это в Гугле.
Ладно, поныл и хватит :) Спасибо за попытку помочь!

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 2 дн. назад #9482 от Wedal
Олег, потому и пишу. Мультиязычность в VM, как мне кажется, до сих пор такая же непроработанная, как и отзывы. Это в принципе сложный функционал, сложный и в разработке и в тестировании, а если помножить его на какие-нибудь дочерние товары и настраиваемые поля VM, то будет еще сложнее.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.