Как убрать надпись «Проверить последнюю версию» из админки VirtueMart

В файле administrator/components/com_virtuemart/admin.virtuemart.php комментируем следующие строчки:

    if( $vmLayout != 'extended' ) {
		echo '<br style="clear:both;"/><div class="smallgrey" align="center">'
	                .$VMVERSION->PRODUCT.' '.$VMVERSION->RELEASE
	                .' (<a href="http://virtuemart.net/index2.php?option=com_versions&amp;catid=1&amp;myVersion='.@$VMVERSION->RELEASE.'" onclick="javascript:void window.open(this.href, \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=580,directories=no,location=no\'); return false;" title="'.$VM_LANG->_('VM_VERSIONCHECK_TITLE').'" target="_blank">'.$VM_LANG->_('VM_VERSIONCHECK_NOW').'</a>)</div>';
	}

VM_VERSIONCHECK_TITLE и VM_VERSIONCHECK_NOW прописаны в administrator/components/com_virtuemart/languages/common/russian.php

Выбор МФУ 2010 часть II

Решил приобрести МФУ HP PhotoSmat C309h, по функциональности отличный аппарат, но после выявления определенных недостатков пришлось сдать его в сервис. Фирма HP к людям относится очень хорошо, и в сервисе дали новый аппарат, печатает новый аппарат уже получше, искажения при печати есть, но проявляются уже реже, а сканер у него обладает теми же недостатками, что и у старого.

Continue reading

Сколько стоят картриджи для МФУ HP c309h

Говорят, что 178-е HP картриджи заправлять не рекомендуется по следующим причинам:

  • они не прозрачные и поэтому не видно сколько чернил налито
  • внутрь перезаправленного картриджа может попасть воздух и из-за этого принтер может выйти из строя
  • и вообще технология заправки картриджей HP без печатающей головки не отработана, в отличии от Epson и т д…
  • неизвестно как себя поведёт чип картриджа после перезаправки, возможно принтер будет показывать нулевой уровень чернил.

вобщем рекомендуется покупать оригинальные:

Continue reading

VirtueMart и Joomla 1.6

virtuemartVirtueMart пока не работает с Joomla 1.6, но зато уже появился VirtueMart 2.0 beta3 (см новости на сайте virtuemart.net), который инсталлируется под Joomla 1.6, но для коммерческого использования пока не годится.  VirtueMart 2.0 beta4 появится в конце марта, видимо рано или поздно будет и VirtueMart 2.0 stable, а пока последняя стабильная версия VirtueMart 1.1.7a, которая работает только с Joomla 1.5.

В VirtueMart 2.0 beta2 появилась plugin system for Shipping and Payments, и другое.

JoomFish для Joomla 1.6 тоже пока ещё не готов, зато Jumi уже есть.

Надо подождать пока выйдет рабочая версия Joomla 1.7, похоже, что толковый VirtueMart 2.0 будет именно под ней.

Высказывания Сталина

  • Вы слепцы, котята, что без меня будет, погибнет страна потому, что вы не можете распознать врагов (в последние годны жизни Сталина).
  • После меня вы продадите Советский Союз.
  • Надо быть очень смелым человеком, чтобы быть трусом в Красной Армии.
  • Одним страхом нельзя удержать власть. Ложь оказалась не менее необходимой.
  • Моя жизнь — безжалостная, как зверь.

Цвета фаст фуда

Фаст фуд использует яркие красные и желтые цвета, чтобы вызвать чувство спешки и неугомонности:

Рестораны используют земные, природные цвета, мягкий голубой, зеленый или коричневый, чтобы успокоить клиентов:

Как работает почта в Авангарде (решение)

см. предыдущий пост на эту тему Как работает почта в Авангарде (продолжение)

отправляем почту на Yandex сразу после установки sendmail:

Connecting to [127.0.0.1] via relay...
220 ubuntu.localdomain ESMTP Sendmail 8.14.3/8.14.3/Debian-9.2ubuntu1; Tue, 25 Jan 2011 12:14:47 -0800; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO ubuntu.localdomain
250-ubuntu.localdomain Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<murat@ubuntu.localdomain> SIZE=77 AUTH=murat@ubuntu.localdomain
250 2.1.0 <murat@ubuntu.localdomain>... Sender ok
>>> RCPT To:<-s@ubuntu.localdomain>
>>> RCPT To:<cvx@yandex.ru>
>>> DATA
550 5.1.1 <-s@ubuntu.localdomain>... User unknown
250 2.1.5 <cvx@yandex.ru>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <cvx@yandex.ru>... Connecting to mx.yandex.ru. via esmtp...
050 220 mxfront22.mail.yandex.net (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)
050 >>> EHLO ubuntu.localdomain
050 250-mxfront22.mail.yandex.net
050 250-8BITMIME
050 250-PIPELINING
050 250-SIZE 42991616
050 250 ENHANCEDSTATUSCODES
050 >>> MAIL From:<murat@ubuntu.localdomain> SIZE=308
050 250 2.1.0 <murat@ubuntu.localdomain> ok
050 >>> RCPT To:<cvx@yandex.ru>
050 >>> DATA
050 250 2.1.5 <cvx@yandex.ru> recipient ok
050 354 Enter mail, end with "." on a line by itself
050 >>> .
050 250 2.0.0 Ok: queued on mxfront22.mail.yandex.net as EUQSBfhG-EUQ0a0jG
050 <cvx@yandex.ru>... Sent (Ok: queued on mxfront22.mail.yandex.net as EUQSBfhG-EUQ0a0jG)
250 2.0.0 p0PKEljG013567 Message accepted for delivery
cvx@yandex.ru... Sent (p0PKEljG013567 Message accepted for delivery)
/home/murat/dead.letter... Saved message in /home/murat/dead.letter
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 ubuntu.localdomain closing connection

всё ок, письмо дошло.

отправляем на soap@mail.spbnit.ru (sendmail -i -v soap@mail.spbnit.ru -s < body.txt):

Connecting to [127.0.0.1] via relay...
220 ubuntu.localdomain ESMTP Sendmail 8.14.3/8.14.3/Debian-9.2ubuntu1; Tue, 25 Jan 2011 12:25:28 -0800; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO ubuntu.localdomain
250-ubuntu.localdomain Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<murat@ubuntu.localdomain> SIZE=77 AUTH=murat@ubuntu.localdomain
250 2.1.0 <murat@ubuntu.localdomain>... Sender ok
>>> RCPT To:<-s@ubuntu.localdomain>
>>> RCPT To:<soap@mail.spbnit.ru>
>>> DATA
550 5.1.1 <-s@ubuntu.localdomain>... User unknown
250 2.1.5 <soap@mail.spbnit.ru>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <soap@mail.spbnit.ru>... Connecting to mx.spbnit.ru. via esmtp...
050 220 mx.spbnit.ru ESMTP Postfix
050 >>> EHLO ubuntu.localdomain
050 250-mx.spbnit.ru
050 250-PIPELINING
050 250-SIZE 10240000
050 250-ETRN
050 250-ENHANCEDSTATUSCODES
050 250-8BITMIME
050 250 DSN
050 >>> MAIL From:<murat@ubuntu.localdomain> SIZE=308
050 250 2.1.0 Ok
050 >>> RCPT To:<soap@mail.spbnit.ru>
050 >>> DATA
050 550 5.1.8 <murat@ubuntu.localdomain>: Sender address rejected: Domain not found
050 554 5.5.1 Error: no valid recipients
050 >>> RSET
050 250 2.0.0 Ok
050 <murat@ubuntu.localdomain>... Connecting to local...
050 <murat@ubuntu.localdomain>... Sent
250 2.0.0 p0PKPSfP013665 Message accepted for delivery
soap@mail.spbnit.ru... Sent (p0PKPSfP013665 Message accepted for delivery)
/home/murat/dead.letter... Saved message in /home/murat/dead.letter
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 ubuntu.localdomain closing connection

говорит, что «Sender address rejected: Domain not found», меняем /etc/hosts:

127.0.0.1       localhost
127.0.1.1       beauty-exclusive.ru     ubuntu.localdomain      ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Continue reading

Как работает почта в Авангарде (продолжение)

Как я уже писал ранее, при попытке отправить письмо через smtp.mail.spbnit.ru с помощью утилиты ssmtp:

$sendmail -v sometestguy1@yandex.ru < body.txt

получается вот такая штука:

[<-] 220 smtp.spbtlg.ru ESMTP Postfix
[->] EHLO ubuntu
[<-] 250 DSN
[->] AUTH LOGIN
[<-] 502 5.5.2 Error: command not recognized
sendmail: Server didn't like our AUTH LOGIN (502 5.5.2 Error: command not recognized)

, то есть smtp серверу почему-то не нравится команда AUTH LOGIN, в чем можно убедиться если зайти через telnet:
Continue reading

Как работает почта в Авангарде

Вступление

Как мне удалось выяснить ранее, одной из особенностей почты на Google или Yandex-e является то, что при отсылке письма, каким бы то ни было способом, будь то sendmail, PHPMailer и др., поле From должно совпадать с именем ящика, через который отправляется письмо. Если поле From отличается от имени ящика, то Google это поле, просто напросто, проигнорирует, а Yandex вообще откажется отправлять такое письмо.
Таким образом, я пришел к выводу, что реализовать на сайте форму такого вида:

через Google или Yandex не получится, так как адрес отправителя письма (поле From) в этой форме для каждого письма задаётся индивидуально. Более того, если у меня есть несколько сайтов, с которых могут приходить письма, то у каждого сайта должен быть свой From Address (поле From в письме). Остается другой вариант — посылать письма через smtp сервер интернет провайдера, и как выяснилось у моего провайдера, Avangard-DSL он имеется, но с ним тоже не всё просто.
Continue reading

Как стандартный Dotfuscator работает с WPF

Похоже что новый Dotfuscator должен поддерживать WPF, см статьи на сайте разработчика:

Но Dotfuscator, который входит в состав MS Visual Studio 2010, WPF полностью не поддерживает. Например, в моём проекте, есть окно с CommandBindings:

<Window ...>
    <Window.CommandBindings>
        <CommandBinding Command="{x:Static local:MainWindow.TextFilterCommand}" Executed="ExecuteTextFilter" CanExecute="CanTextFilter" />
        <CommandBinding Command="{x:Static local:MainWindow.ClearTextFilterCommand}" Executed="ExecuteClearTextFilter" CanExecute="CanClearTextFilter" />
        <CommandBinding Command="{x:Static local:MainWindow.TextFilterUseRegexCommand}" Executed="ExecuteTextFilterUseRegex" CanExecute="CanAlwaysTrue" />
    </Window.CommandBindings>
    <Window.InputBindings>
        <KeyBinding Key="R" Modifiers="Ctrl" Command="{x:Static local:MainWindow.TextFilterUseRegexCommand}" />
    </Window.InputBindings>
    ...
</Window>

так вот для них в проекте Dotfuscator-а пришлось явно прописывать исключения:

Continue reading

Где задавать номер порта в конфигурации Apache

надо в файле /etc/apache2/ports.conf заменить

NameVirtualHost *:80
Listen 80

на

NameVirtualHost *:2080
Listen 2080

, где 2080 новый номер порта, внести соответствующие изменения в конфигурации виртуальных хостов (VirtualHost) для сайтов и перезагрузить конфигурацию Apache:

/etc/init.d/apache2 reload

если используется Joomla + VirtueMart, то надо в файле administrator/components/com_virtuemart/virtuemart.cfg.php изменить параметры URL и SECUREURL.

Общие правила работы для PHP/MySQL разработчиков

Все изменения производятся на тестовом сайте, откуда переносятся на боевой, с помощью специальной команды, которая архивирует измененные файлы, поэтому перезаливать на сервер надо только те файлы, которые вы модифицируете. Если были сделаны изменения в базе MySQL, то создаётся sql скрипт, для внесения изменений в базу боевого сайта.

Изменения желательно вносить в шаблон CMS, или её компонента, а не в движок CMS или компонента, для того, чтобы при установке новой версии CMS или компонента изменения не пропадали. Если невозможно ограничиться модификацией шаблона, то это надо обосновать и более-менее подробно задокументировать.

Выглядеть сайт должен одинаково под IE 7+, FF, Chrome, Opera. Поддержка IE 6 не обязательна.
Continue reading

Полезные команды MySQL

Работа с привилегиями:

показать привелегии пользователя gui и др.:

SHOW GRANTS FOR 'gui'@'%';
SELECT host, user, password FROM user ;
SHOW GRANTS FOR 'user'@'localhost';

удалить все привелегии:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'gui'@'%';

дать read only доступ к базе beauty:

GRANT SELECT ON `beauty`.* TO 'gui'@'%';

Continue reading

Как убрать кнопки у WPF FlowDocumentPageViewer

Надо прописать ему Template:

<FlowDocumentPageViewer.Template>
    <ControlTemplate TargetType="{x:Type FlowDocumentPageViewer}">
        <AdornerDecorator>
            <DocumentPageView FlowDocumentPageViewer.IsMasterPage="True" />
        </AdornerDecorator>
    </ControlTemplate>
</FlowDocumentPageViewer.Template>

либо, если нужен FlowDocument без кнопок можно использовать FlowDocumentScrollViewer с убранным вертикальным скролбаром:

<FlowDocumentScrollViewer VerticalScrollBarVisibility="Hidden">
    <FlowDocument>
        <Paragraph>
			Some Text
        </Paragraph>
    </FlowDocument>
</FlowDocumentScrollViewer>

Сколько платит индивидуальный предприниматель (ИП)

В соответствии с законопроектом № 258106-6 с 1 января 2014 фиксированные взносы для ИП без наемных работников с годовым доходом до 300 тысяч рублей составят 19425 рублей в год.

Индивидуальный предприниматель (далее ИП) платит фиксированные выплаты, в так называемые, внебюджетные фонды + налоги.

Фиксированные выплаты

Фиксированные выплаты в 2010 — 2013 годах составляют:

2010 год (руб) 2011 год (руб) 2012 год (руб) 2013 год (руб)
страховая часть в ПФ 7274,4 10392 11066.4 32479.20
накопительная часть в ПФ 3117,6 3117,6 3319.92
платеж в ФФОМС 572 1091,16 2821.92 3185.46
платеж в ТФОМС 1039 1558,8
итого 12003 16159,56 17208.24 35664.66

Continue reading

Где в Joomla VirtueMart сидит производитель товара

В файле administrator/components/com_virtuemart/classes/ps_product.php есть функция get_manufacturer_id:

	function get_manufacturer_id($product_id) {
		$db = new ps_DB;

		$q = "SELECT manufacturer_id FROM #__{vm}_product_mf_xref ";
		$q .= "WHERE product_id='$product_id' ";

		$db->query($q);
		$db->next_record();
		if ($db->f("manufacturer_id")) {
			return $db->f("manufacturer_id");
		}
		else {
			return false;
		}
	}

судя по этому коду становится понятно где копать. У таблицы jos_vm_product_mf_xref нет Primary Key, его надо добавить, иначе EF через MySQL Connector.Net её не импортирует:

ALTER TABLE `jos_vm_product_mf_xref` ADD PRIMARY KEY(`product_id`)

Continue reading

Как настроить удаленный доступ к MySQL

Во-первых, надо проверить что всё нормально с Firewall-ом.

в файле /etc/mysql/my.cnf, по умолчанию, разрешены подключение только к локальному хосту:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1

Continue reading

Firewall под Ubuntu Linux

Под Ubuntu Linux Firewall работает через iptables, который установлен по умолчанию и разрешает весь трафик. С командной строки через iptables работать достаточно сложно, поэтому есть UFW (Uncomplicated Firewall) или GUFW, для работы с Firewall через графический интерфейс.

Ставим GUFW:

# apt-get install gufw

запускаем и видим, что Firewall действительно выключен: