Opencart - Test VQmod XML file - What's wrong here? - opencart

just getting used to using VQMod.
What is wrong here? It isn't updating on the front-end.
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>VQMOD CORE FOR OPENCART - DO NOT REMOVE</id>
<version>1.4.x and above</version>
<vqmver required="true">2.5.0</vqmver>
<author>vqmod.com</author>
<file name="admin/view/template/common/footer.tpl">
<operation info="Example of the vQmod">
<search position="replace"><![CDATA[
<?php echo $affiliate; ?>
]]></search>
<add><![CDATA[
I am replaced content!!
]]></add>
</operation>
</file>
</modification>
Cheers!

Actually you are trying to change the "backend" but with no luck!
I think you should read:
vQmod: https://github.com/vqmod/vqmod/wiki
Examples: https://github.com/vqmod/vqmod/wiki/Examples
Scripting: https://github.com/vqmod/vqmod/wiki/Scripting

The problem is the following, in this file footer.tpl
admin/view/template/common/footer.tpl
This is the content:
</div>
<div id="footer"><?php echo $text_footer; ?></div>
</body></html>
And your script want to find this "echo $affiliate;" but this content don't exist in this file.
I don't know what file you want to use, but this file don't has this content
admin/view/template/common/footer.tpl
Regards,
Miguel

Related

Open Cart 3 How to get sku of cart product

i am trying to build a extension where i want to get sku value of product on cart page, checkout page and product page. I have set the fields at backend where admin can set the company id which will be pass in button URL. how can i get the sku value on cart page. I tried many different methods but it dosent work. i am also trying to get it on product & checkout page. is there anyone who can help me out.
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<name>Fast Checkout</name>
<version>1.0</version>
<link>https://google.com</link>
<author>Jamil Baig</author>
<code>fast_checkout</code>
<file path="catalog/view/theme/*/template/common/cart.twig">
<operation>
<search><![CDATA[<a href="{{ cart }}"><strong><i class="fa fa-shopping-cart"></i>]]></search>
<add position="replace"><![CDATA[<script type="text/javascript">
function clearCart() {
$.ajax({
url: 'https://adup.iot',
dataType: 'json',
success: function(json) {
$('#cart-total').html(json['total']);
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
location = 'https://adup.io';
} else {
$('#cart > ul').load('https://adup.io ul li');
}
}
});
}
</script>
<a style="cursor:pointer;"><strong><i class="fa fa-times"></i> {{button_fastcheckout }}</strong></a> <a href="{{ cart }}"><strong><i class="fa fa-shopping-cart"></i>]]></add>
</operation>
</file>
<file path="catalog/controller/checkout/cart.php">
<operation>
<search><![CDATA[public function add() {]]></search>
<add position="before"><![CDATA[public function clearcart() {
$this->load->language('checkout/cart');
$json = array();
$this->cart->clear();
$total = 0;
unset($this->session->data['vouchers']);
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['reward']);
$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->config->get('config_currency')));
if (isset($this->request->get['shoppingcart']) && $this->request->get['shoppingcart']=='true') {
$this->response->redirect($this->url->link('checkout/cart'));
} else {
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}]]></add>
</operation>
</file>
<file path="catalog/controller/common/cart.php">
<operation>
<search><![CDATA[$this->load->language('common/cart');]]></search>
<add position="after"><![CDATA[$data['button_fastcheckout'] = $this->language->get('button_fastcheckout');]]></add>
</operation>
</file>
<file path="catalog/controller/checkout/cart.php">
<operation>
<search><![CDATA[$this->load->language('checkout/cart');]]></search>
<add position="after"><![CDATA[$this->load->controller("admin/controller/extension/module/fastcheckout");
$this->load->model('catalog/product');
$data['button_fastcheckout'] = $this->language->get('Fast Checkout');
$products = $this->cart->getProducts();
foreach ($products as $product) {
$data['product_id'] = $product['product_id'];
}
$data['link_button'] = 'https://adup.io/?companyid='.$this->config->get('module_fastcheckout_company_id').'&sku='.$data['product_id'].'&p_id='.$data['product_id'];]]></add>
</operation>
</file>
<file path="catalog/language/en-gb/common/cart.php">
<operation>
<search><![CDATA[$_['text_recurring'] = 'Payment Profile';]]></search>
<add position="before"><![CDATA[$_['button_fastcheckout'] = 'Clear Cart';]]></add>
</operation>
</file>
<file path="catalog/language/en-gb/checkout/cart.php">
<operation>
<search><![CDATA[$_['column_total']= 'Total';]]></search>
<add position="before"><![CDATA[$_['button_fastcheckout'] = 'Clear Cart';]]></add>
</operation>
</file>
<file path="catalog/view/theme/*/template/checkout/cart.twig">
<operation>
<search><![CDATA[{% if modules %}]]></search>
<add position="before"><![CDATA[{{button_fastcheckout}}]]></add>
</operation>
</file>
</modification>
solved
after getting product id, i can get sku of product on cart page

How to get user information to .tpl file in opencart using vqmod?

I am new in opencart and I am trying to make some changes using vqmod.I have built a xml file which will add some text on product_list.tpl depending on user's id.The problem is that I cannot get id.I tried a lot but still no success.If anyone knows how can I achieve this please post.I get this notice on browser -> Notice: Undefined property: Loader
Here is my xml file:
<modification>
<id>GeoDim - add message products depending on user login</id>
<version>1.0</version>
<vqmver>2.4.1</vqmver>
<author>GeoDim</author>
<file path="admin/view/template/catalog/product_list.tpl">
<operation>
<search position="after"><![CDATA[div class="pull-right"]]></search>
<add><![CDATA[
<?php
// GeoDim - add message products depending on user login
$this->load->model('user/user');
$user_group_id = $this->model_user_user->getUsersGroupId($this->user->getId());
if ($user_group_id == 1) {
echo '<p style="background-color: yellow;font-size: 21px;float: left;margin-right: 5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο TEST</p>';
}else {
echo '<p style="background-color: orange;font-size: 21px;float:left;margin-right:5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο LIVE</p>';
}
// END GeoDim - add message products depending on user login
?>
]]></add>
</operation>
</file>
</modification>
Which version of Opencart?
Since there's no getUsersGroupId function in model/user/user.php on opencart 2.x I used getUser here, I've tested this on opencart 2.1.0.1.
You must first get user_group_id in controller file and then send it to view file via $data, so edit this file:
admin/controller/catalog/product.php
Find getList function and add this inside it:
$this->load->model('user/user');
$user_group_id = $this->model_user_user->getUser($this->user->getId());
if ($user_group_id['user_group_id'] == 1) {
$data['paragraph'] = '<p style="background-color: yellow;font-size: 21px;float: left;margin-right: 5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο TEST</p>';
}else {
$data['paragraph'] = '<p style="background-color: orange;font-size: 21px;float:left;margin-right:5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο LIVE</p>';
}
and then in admin/view/template/catalog/product_list.tpl use it:
<?php echo $paragraph; ?>
Here is full code:
<modification>
<id>GeoDim - add message products depending on user login</id>
<version>1.0</version>
<vqmver>2.4.1</vqmver>
<author>GeoDim</author>
<file path="admin/controller/catalog/product.php">
<operation>
<search position="after"><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
<add><![CDATA[
// GeoDim - add message products depending on user login
$this->load->model('user/user');
$user_group_id = $this->model_user_user->getUser($this->user->getId());
if ($user_group_id['user_group_id'] == 1) {
$data['paragraph'] = '<p style="background-color: yellow;font-size: 21px;float: left;margin-right: 5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο TEST</p>';
}else {
$data['paragraph'] = '<p style="background-color: orange;font-size: 21px;float:left;margin-right:5px"><i class="fa fa-exclamation-triangle"></i>Είστε στο LIVE</p>';
}
// END GeoDim - add message products depending on user login
]]></add>
</operation>
</file>
<file path="admin/view/template/catalog/product_list.tpl">
<operation>
<search position="after"><![CDATA[div class="pull-right"]]></search>
<add><![CDATA[
<?php echo $paragraph; ?>
]]></add>
</operation>
</file>
</modification>

Opencart VqMod Error

i have opencart 1.5.5.1 web site with VqMod(latest)
Vqmod running fine but i had a problem with one xml file.
xlm file has following lines
<file name="admin/view/template/common/header.tpl">
<operation>
<search position="replace" offset="8"><![CDATA[
<ul class="right" style="display: none;">
]]></search>
<add><![CDATA[
<ul class="right" style="display: none;">
<li id="store"><a onClick="window.open('<?php echo $store; ?>');" class="top">
but result was shown below.
File Name : admin/view/template/common/header.tpl(5)
VQModObject::applyMod - SEARCH NOT FOUND (ABORTING MOD): <ul class="right" style="display: none;">
there is a line <ul class="right" style="display: none;">in header.tpl but xml code is not working
Add this code for your replace you want hear:
<file name="admin/view/template/common/header.tpl">
<operation>
<search position="replace"><![CDATA[
<li id="store"><?php echo $text_front; ?>
]]></search>
<add><![CDATA[
<li id="store"><a onClick="window.open('<?php echo $store; ?>');" class="top"><?php echo $text_front; ?></a>
]]>
</add>
</operation>
</file>
This value " <ul class="right" style="display: none;">" is not exactly on this file
admin/view/template/common/header.tpl
Perhaps any other extension changes this file.
Also, you can try to quit this part - offset="8" , here:
<search position="replace" offset="8">
replace for:
<search position="replace">
I tried this, and it is good.

Automatic link in admin menu

I've followed this small tutorial, and made what i needed:
Stackoverflow - Custom admin page
But now i needed to put a link to it in the admin menu, automaticly when I upload my files to the server...
How can I do it? :s googled for it, but I think I couldn't find the answer :s
This can't be done automatically when you upload the files to the server. You will need to create a vQmod to edit the admin header files to insert it
You should tell us what version of opencart you are using, do you have vqmod (do you intend to use it at all), and where would you like that page link to show up in admin panel.
You need to install vqmod (follow instructions)
create .xml file, save it to vqmod XML folder and put this in it
<modification>
<id>Add a link</id>
<version>1.5.4</version>
<vqmver>0.1</vqmver>
<author>Jeffrey Murdock</author>
<!-- edit header controller -->
<file name="admin/controller/common/header.php">
<!-- create link to your page -->
<operation error="log">
<search position="after"><![CDATA[$this->data['setting'] = $this->url->link('setting/store', 'token=' . $this->session->data['token'], 'SSL');]]></search>
<add><![CDATA[
$this->data['hello_world'] = $this->url->link('custom/helloworld', 'token=' . $this->session->data['token'], 'SSL');
]]></add>
</operation>
<!-- / -->
</file>
<!-- edit header template -->
<file name="admin/view/template/common/header.tpl">
<!-- add link to your page -->
<operation error="log">
<search position="before" offset="1"><![CDATA[<ul class="right">]]></search>
<add><![CDATA[
<li><a class="top">Your link</a>
<ul>
<li>Hello World</li>
</ul>
</li>
]]></add>
</operation>
<!-- / -->
</file>
</modification>
If you installed vqmod properly, and have opencart 1.5.4 version, this should display link in your administrator top menu.

Provide new references for static blocks in Magento layout

I want to display a carousel and two banners at the top of each page content of my site.
I’ve created a custom reference starting from the footer block in page.xml.
So this is what it looks like:
<block type="page/html" name="topcontent" as="topcontent" template="page/html/topcontent.phtml">
<block type="page/html_wrapper" name="topcontent.container" as="topcontentContainer" translate="label">
<label>Page Top Content</label>
<action method="setElementClass"><value>topcontent-container</value></action>
</block>
<block type="core/template" name="topcontent.book.carousel" as="topcontentCarousel" template="callouts/book-carousel.phtml"/>
<block type="core/text_list" name="topcontent.left" as="topcontentLeft" />
<block type="core/text_list" name="topcontent.right" as="topcontentRight" />
</block>
Then I created a topcontent.phtml file where I put
<div class="topcontent-container">
<div class="topcontent">
<?php echo $this->getChildHtml('topcontentContainer') ?>
<?php echo $this->getChildHtml('topcontentCarousel') ?>
<?php echo $this->getChildHtml('topcontentLeft') ?>
<?php echo $this->getChildHtml('topcontentRight') ?>
</div>
</div>
I have my carousel displayed correctly, but when I try to put a block in topcontentLeft or topcontentRight, it is not displayed ad all.
I think I’m doing something wrong with the block type parameter, but I can’t figure out what: can someone provide me some help?
Thanks.
Depends on what you need to display in banner. If it's just some text you could use text block:
<block type="core/text" name="topcontent.right" as="topcontentRight">
<action method="addText"><text>Test text</text></action>
</block>
If you need placeholder block to show some CMS static block content, then you're right, cote/text_list is appropriate type for such block. It takes all it's nested blocks and render them one by one. So next you need to do is to put cms/block placeholder, its content could be added later from backend. All together it may looks like:
<block type="core/text_list" name="topcontent.right" as="topcontentRight">
<block type="cms/block" name="topcontent.right.cms" as="topcontentRightCms">
<action method="setBlockId"><block_id>topcontent_right_static</block_id></action>
</block>
</block>
Now you could create new static bloc in admin backend with 'topcontent_right_static' id and it'll be rendered in place where you output it.
I think the problem is in the #type attribute for topcontentLeft and topcontentRight
type="core/text_list" need to be changed to type="core/template"