Устанавливал VmWare Player.
sudo sh VMware-Player-2.5.1-126130.i386.bundle
Для запуска программы необходимо перейти в директорию файла. В моем случае /Downloads. Причем в Linux важно соблюдать регистр.
воскресенье, 26 сентября 2010 г.
среда, 22 сентября 2010 г.
Добавление нового поля в VirtueMart
Наверное каждый кто когда-либо работал с компонентом Virtuemart замечал, что стандартных полей описания товара слишком мало. Вот и передо мной встала задача реализовать несколько дополнительных полей для вывода их в категории и в карточке товара. Как все умные и в меру ленивые люди (да-да люблю я себя (: ), решил сначала посмотреть, что пишут люди на российских и зарубежных форумах... и, о ужас, все мануалы пишутся только для вирта 1.0, в котором синтаксис координально отличается от версии 1.1. Проскальзывало несколько постов, типа: "Ура, я сумел реализовать сие чудо на вирте 1.1.3". После чего авторы сих познавательных комментов исчезали. Немного подумав и посидев над кодом нашел стабильное решение, которое безотказно работает на версиях 1.1.3 и 1.1.4. Итак приступим:
0. Для реализации нам нужен PhpMyAdmin, Dreamweaver (блокнот тож сойдет) и немного терпения.
1. Открываем базу данных нашего сайта и находим таблицу jos_vm_product. Заходим в нее, выбираем вкладку "Структура". Тут мы видим все поля нашего товара, такие как Артикул, Айди, цена и пр. Спускаемся вниз и находим "Добавить 1 поле(поля)" выбираем правее под каким полем хотим расположить наше будущее творение и жмем Ок. Теперь заполняем: Поле: product_new (можете вставить свое); Длина/значения: 64; Тип: VARCHAR; Сравнение: utf8_general_ci; Null: NOT NULL. Вдаваться в подробности за что отвечает каждая строчка не буду, таких мануалов итак полно. Остальные поля можно оставить пустыми. Сохраняем. Все... первый этап завершен.
2. После создания поля в таблице ее нужно привязать к админке сайта. Для этого идем сюда: administrator/com_virtuemart/html/product.product_form.php. В файле product.product_form.php в районе 197 строки начинается таблица, в которой формируются строки при добавлении нового товара. Оптимальнее всего размещать новое поле под артикулом. Следовательно находим строки:
3. Теперь нам нужно связать наше новое поле с базой данных нашего сайта. Для этого идем в administrator/components/com_virtuemart/classes/ps_product.php находим строчки:
4. В этом шаге мы начнем реализацию отображения нового поля в категории и карточке товара, для этого предварительно нужно отредактировать 2 файла. Сначала идем в administrator/com_virtuemart/html/shop_browse_queries.php (файл отвечает за включение поля в выборку при обращении к карточке товара или к категории). Находим строчки:
5. Открываем components/com_virtuemart/themes/default/templates/browse/ваш шаблон категории. В моем случае это browse_1. В файле можно заметить, что вывод формируется через функции вида <?php echo $product_title ?>, следовательно, чтобы вывести наше новое поле нужно вставить: <?php echo $product_new ?>. В качестве примера выкладываю примерный код шаблона категории:
0. Для реализации нам нужен PhpMyAdmin, Dreamweaver (блокнот тож сойдет) и немного терпения.
1. Открываем базу данных нашего сайта и находим таблицу jos_vm_product. Заходим в нее, выбираем вкладку "Структура". Тут мы видим все поля нашего товара, такие как Артикул, Айди, цена и пр. Спускаемся вниз и находим "Добавить 1 поле(поля)" выбираем правее под каким полем хотим расположить наше будущее творение и жмем Ок. Теперь заполняем: Поле: product_new (можете вставить свое); Длина/значения: 64; Тип: VARCHAR; Сравнение: utf8_general_ci; Null: NOT NULL. Вдаваться в подробности за что отвечает каждая строчка не буду, таких мануалов итак полно. Остальные поля можно оставить пустыми. Сохраняем. Все... первый этап завершен.
2. После создания поля в таблице ее нужно привязать к админке сайта. Для этого идем сюда: administrator/com_virtuemart/html/product.product_form.php. В файле product.product_form.php в районе 197 строки начинается таблица, в которой формируются строки при добавлении нового товара. Оптимальнее всего размещать новое поле под артикулом. Следовательно находим строки:
- <tr class="row1">
- <td width="21%" >
- <div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->
- _('PHPSHOP_PRODUCT_FORM_SKU') ?>:</div>
- </td>
- <td width="79%">
- <input type="text" class="inputbox" name="product_sku" value="<?php $db->sp("product_sku"); ?>" size="32" maxlength="64" />
- </td>
- </tr>
- <tr class="row1">
- <td width="21%" >
- <div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_NEW') ?>:</div>
- </td>
- <td width="79%">
- <input type="text" class="inputbox" name="product_new" value="<?php $db->sp("product_new"); ?>" size="32" maxlength="64" />
- </td>
- </tr>
- <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_NEW') ?>
- 'PHPSHOP_PRODUCT_FORM_SKU' => 'Артикул',
- 'PHPSHOP_PRODUCT_FORM_NEW' => 'Новое поле',
3. Теперь нам нужно связать наше новое поле с базой данных нашего сайта. Для этого идем в administrator/components/com_virtuemart/classes/ps_product.php находим строчки:
- // Insert into DB
- $fields = array ( 'vendor_id' => $vendor_id,
- 'product_parent_id' => vmRequest::getInt('product_parent_id'),
- 'product_sku' => vmGet($d,'product_sku'),
- 'product_new' => vmGet($d,'product_new'),
4. В этом шаге мы начнем реализацию отображения нового поля в категории и карточке товара, для этого предварительно нужно отредактировать 2 файла. Сначала идем в administrator/com_virtuemart/html/shop_browse_queries.php (файл отвечает за включение поля в выборку при обращении к карточке товара или к категории). Находим строчки:
- $fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
- `#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,
- `product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`,`product_url`,
- $fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
- `#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,
- `product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`,`product_new`,`product_url`,
- // Unset these for the next product
- unset($full_image_width);
- unset($full_image_height);
- $products[$i]['product_name'] = shopMakeHtmlSafe( $product_name );
- $products[$i]['product_s_desc'] = $product_s_desc;
- $products[$i]['product_details'] = $product_details;
- $products[$i]['product_rating'] = $product_rating;
- $products[$i]['product_price'] = $product_price;
- $products[$i]['product_price_raw'] = $product_price_raw;
- $products[$i]['product_sku'] = $db_browse->f("product_sku");
- $products[$i]['product_new'] = $db_browse->f("product_new");
5. Открываем components/com_virtuemart/themes/default/templates/browse/ваш шаблон категории. В моем случае это browse_1. В файле можно заметить, что вывод формируется через функции вида <?php echo $product_title ?>, следовательно, чтобы вывести наше новое поле нужно вставить: <?php echo $product_new ?>. В качестве примера выкладываю примерный код шаблона категории:
- <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
- mm_showMyFileName(__FILE__);
- ?>
- <div class="browseProductContainer">
- <h1><a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>">
- <?php echo $product_name ?></a>
- </h1>
- <table border="1" width="100%" style="text-align:center;">
- <tr>
- <td>
- <script type="text/javascript">//<![CDATA[
- document.write('<a href="javascript:void window.open(\'<?php echo $product_full_image ?>\', \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=<?php echo $full_image_width ?>,height=<?php echo $full_image_height ?>,directories=no,location=no\');">');
- document.write( '<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' ) ?></a>' );
- //]]>
- </script>
- <noscript>
- <a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>">
- <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' ) ?>
- </a>
- </noscript>
- </td>
- <td>
- <?php echo $product_new ?>
- </td>
- <td>
- <?php echo $product_s_desc ?>
- </td>
- <td>
- <?php echo $product_sku ?>
- </td>
- <td>
- <?php echo $product_price ?>
- </td>
- </tr>
- </table>
- <br />
- <span>
- <?php echo $form_addtocart ?>
- </span>
- </div>
суббота, 18 сентября 2010 г.
Добавление маршрута в Ubuntu
sudo route add -net 50.100.100.0 netmask 255.255.255.0 dev ppp0.
Все пакеты для сети 50.100.100.0 отправлять через интерфейс ppp0. Это VPN соединение.
Все пакеты для сети 50.100.100.0 отправлять через интерфейс ppp0. Это VPN соединение.
среда, 15 сентября 2010 г.
Ошибка при копировании файлов по сети "Сетевое имя более недоступно"
Ошибка возникала при копировании больших файлов по сети с ресурса на Win 2003 server. Почти одновременно было две ситуации. В одной перестала работать 1С, где базы размещались на Win2003, а ядро на виртуальной машине на том же сервере. При попытке скопировать базу с общего ресурса выдавалась ошибка "Невозможно скопировать файл. Сетевое имя более недоступно". В журнале событий Win 2003 появлялась запись о DoS-атаке: "The server has detected an attempted Denial-Of-Service attack from client \\computer_name, and has disconnected the connection." Проблема решена созданием ключа в реестре:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\ParametersСоздать ключ тип DWORD -- DisableDos -- присвоить значение --1--Другая ситуация с аналогичной проблемой. Был создан PPTP туннель с удаленным офисом с помощью D-Link DFL 260. При попытке скопировать файл большого размера у клиента появлялась тоже сообщение "Невозможно скопировать файл. Сетевое имя более недоступно", однако при этом никаких записей в журнале Win 2003 не появлялось. Создали аналогичный ключ в реестре и пока все нормально. Файлы копируются. Решение было взято из статьи Microsoft: http://support.microsoft.com/kb/898468 . Там это разбито на два метода и данный метод по номером 2. Теперь опишу кратко первый метод. У Win 2003 server по умолчанию установлено максимальное количество concurrent outstanding network requests that are allowed (Разрешенных одновременно запросов с внешней сети) равное 50. Предлагается увеличить это количество. Для этого создается новый ключ в реестре.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parametersтип DWORD --MaxMpxCt--значение от 50 до 65535. Увеличивая значение этого параметра нужно иметь ввиду, что при этом увеличивается количество памяти, используемой сервером. Может случиться так, что у сервера не хватит ресурсов, таких как пул страничной памяти (paged pool memory).
Ошибка при установке vmware tools на vmware player
После установки Win Xp на vmware player при попытке устновить vmware tools выдается сообщение "VMware Tools installation fails when Easy Install is in progress".
To resolve this issue and unmount the virtual floppy:
- Power off the virtual machine.
- Go to VM > Settings
- Select Floppy.
- Select Use physical drive, and set the dropdown to Auto detect.
This unmounts the virtual floppy from the virtual drive. - Power on the virtual machine and install VMware Tools.
понедельник, 13 сентября 2010 г.
Настройка ADSL домолинк Zyxel P-660 RT3
IP по умолчанию 192.168.1.1
имя admin
пароль 1234
VPI - 0
VCI - 35
Имя пользователя вводить до символа @
Поле Servicename оставить пустым.
воскресенье, 12 сентября 2010 г.
Подписаться на:
Сообщения (Atom)