Version Notes
Fixes:
- Sorting disabled on tickets grid (introduced in v2.1.0)
- PHP errors when saving incorrect configuration
- PHP error when clicking the sync users button multiple times
Changes:
- Set ticket submitter as logged in Magento user if email is a Zendesk agent or admin
Download this release
Release Info
Developer | Jason Smale |
Extension | zendesk |
Version | 2.1.1 |
Comparing to | |
See all releases |
Code changes from version 2.1.0 to 2.1.1
- app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php +0 -5
- app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php +1 -1
- app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Abstract.php +0 -15
- app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/All.php +1 -3
- app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Renderer/User.php +1 -1
- app/code/community/Zendesk/Zendesk/Helper/Data.php +11 -1
- app/code/community/Zendesk/Zendesk/Model/Api/Users.php +18 -1
- app/code/community/Zendesk/Zendesk/Model/Resource/Tickets/Collection.php +11 -6
- app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php +22 -9
- app/code/community/Zendesk/Zendesk/etc/config.xml +1 -1
- app/code/community/Zendesk/Zendesk/functions.php +116 -0
- app/design/adminhtml/default/default/template/zendesk/dashboard/index.phtml +1 -1
- package.xml +10 -10
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard.php
CHANGED
@@ -31,11 +31,6 @@ class Zendesk_Zendesk_Block_Adminhtml_Dashboard extends Mage_Adminhtml_Block_Tem
|
|
31 |
return 'Token token="' . Mage::helper('zendesk')->getApiToken(false) . '"';
|
32 |
}
|
33 |
|
34 |
-
public function isConnected() {
|
35 |
-
$connection = Mage::helper('zendesk')->getConnectionStatus();
|
36 |
-
return $connection['success'];
|
37 |
-
}
|
38 |
-
|
39 |
public function getTotals() {
|
40 |
return Mage::helper("zendesk")->getTicketTotals();
|
41 |
}
|
31 |
return 'Token token="' . Mage::helper('zendesk')->getApiToken(false) . '"';
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
34 |
public function getTotals() {
|
35 |
return Mage::helper("zendesk")->getTicketTotals();
|
36 |
}
|
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Grids.php
CHANGED
@@ -29,7 +29,7 @@ class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Grids extends Mage_Adminhtml_Blo
|
|
29 |
protected function _prepareLayout() {
|
30 |
// Check if we are on the main admin dashboard and, if so, whether we should be showing the grid
|
31 |
// Note: an additional check in the template is needed, but this will prevent unnecessary API calls to Zendesk
|
32 |
-
if ( !$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard') )
|
33 |
{
|
34 |
return parent::_prepareLayout();
|
35 |
}
|
29 |
protected function _prepareLayout() {
|
30 |
// Check if we are on the main admin dashboard and, if so, whether we should be showing the grid
|
31 |
// Note: an additional check in the template is needed, but this will prevent unnecessary API calls to Zendesk
|
32 |
+
if ( !Mage::helper('zendesk')->isConnected() || (!$this->getIsZendeskDashboard() && !Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')) )
|
33 |
{
|
34 |
return parent::_prepareLayout();
|
35 |
}
|
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Abstract.php
CHANGED
@@ -171,7 +171,6 @@ abstract class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Abstra
|
|
171 |
'filter' => $filter,
|
172 |
'index' => $index,
|
173 |
'type' => $this->getColumnType($index),
|
174 |
-
'users' => $this->getCollection()->users,
|
175 |
);
|
176 |
|
177 |
$renderer = $this->getColumnRenderer($index);
|
@@ -242,18 +241,4 @@ abstract class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Abstra
|
|
242 |
|
243 |
return $js;
|
244 |
}
|
245 |
-
|
246 |
-
/**
|
247 |
-
* Override the parent method so that $this->_prepareCollection() is called first
|
248 |
-
*
|
249 |
-
* @return $this
|
250 |
-
*/
|
251 |
-
protected function _prepareGrid()
|
252 |
-
{
|
253 |
-
$this->_prepareCollection();
|
254 |
-
$this->_prepareColumns();
|
255 |
-
$this->_prepareMassactionBlock();
|
256 |
-
|
257 |
-
return $this;
|
258 |
-
}
|
259 |
}
|
171 |
'filter' => $filter,
|
172 |
'index' => $index,
|
173 |
'type' => $this->getColumnType($index),
|
|
|
174 |
);
|
175 |
|
176 |
$renderer = $this->getColumnRenderer($index);
|
241 |
|
242 |
return $js;
|
243 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
}
|
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/All.php
CHANGED
@@ -52,10 +52,8 @@ class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_All extends Zen
|
|
52 |
$this->addColumn('requester_id', array(
|
53 |
'header' => Mage::helper('zendesk')->__('Email'),
|
54 |
'width' => '60',
|
55 |
-
'
|
56 |
-
'index' => 'requester_id',
|
57 |
'sortable' => false,
|
58 |
-
'users' => $this->getCollection()->users,
|
59 |
));
|
60 |
|
61 |
$this->addColumn('type', array(
|
52 |
$this->addColumn('requester_id', array(
|
53 |
'header' => Mage::helper('zendesk')->__('Email'),
|
54 |
'width' => '60',
|
55 |
+
'index' => 'requester_email',
|
|
|
56 |
'sortable' => false,
|
|
|
57 |
));
|
58 |
|
59 |
$this->addColumn('type', array(
|
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Renderer/User.php
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_User extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
|
20 |
|
21 |
public function render(Varien_Object $row) {
|
22 |
-
$users = $
|
23 |
$value = (int) $row->getData($this->getColumn()->getIndex());
|
24 |
|
25 |
$found = array_filter($users, function($user) use($value) {
|
19 |
class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_User extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
|
20 |
|
21 |
public function render(Varien_Object $row) {
|
22 |
+
$users = $row->users;
|
23 |
$value = (int) $row->getData($this->getColumn()->getIndex());
|
24 |
|
25 |
$found = array_filter($users, function($user) use($value) {
|
app/code/community/Zendesk/Zendesk/Helper/Data.php
CHANGED
@@ -391,7 +391,17 @@ class Zendesk_Zendesk_Helper_Data extends Mage_Core_Helper_Abstract
|
|
391 |
);
|
392 |
}
|
393 |
}
|
394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
public function storeDependenciesInCachedRegistry() {
|
396 |
$cache = Mage::app()->getCache();
|
397 |
|
391 |
);
|
392 |
}
|
393 |
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* Checks if the current connection details are valid.
|
397 |
+
*
|
398 |
+
* @return boolean
|
399 |
+
*/
|
400 |
+
public function isConnected() {
|
401 |
+
$connection = $this->getConnectionStatus();
|
402 |
+
return $connection['success'];
|
403 |
+
}
|
404 |
+
|
405 |
public function storeDependenciesInCachedRegistry() {
|
406 |
$cache = Mage::app()->getCache();
|
407 |
|
app/code/community/Zendesk/Zendesk/Model/Api/Users.php
CHANGED
@@ -59,7 +59,7 @@ class Zendesk_Zendesk_Model_Api_Users extends Zendesk_Zendesk_Model_Api_Abstract
|
|
59 |
while($page && $response = $this->_call('users.json?page=' . $page)) {
|
60 |
$users = array_merge($users, $response['users']);
|
61 |
$page = is_null($response['next_page']) ? 0 : $page + 1;
|
62 |
-
|
63 |
|
64 |
return $users;
|
65 |
}
|
@@ -115,4 +115,21 @@ class Zendesk_Zendesk_Model_Api_Users extends Zendesk_Zendesk_Model_Api_Abstract
|
|
115 |
|
116 |
return $response['user_field'];
|
117 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
59 |
while($page && $response = $this->_call('users.json?page=' . $page)) {
|
60 |
$users = array_merge($users, $response['users']);
|
61 |
$page = is_null($response['next_page']) ? 0 : $page + 1;
|
62 |
+
}
|
63 |
|
64 |
return $users;
|
65 |
}
|
115 |
|
116 |
return $response['user_field'];
|
117 |
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Fetch all user fields
|
121 |
+
*
|
122 |
+
* @return array $userFields
|
123 |
+
*/
|
124 |
+
public function getUserFields()
|
125 |
+
{
|
126 |
+
$page = 1;
|
127 |
+
$userFields = array();
|
128 |
+
while($page && $response = $this->_call('user_fields.json?page=' . $page)) {
|
129 |
+
$userFields = array_merge($userFields, $response['user_fields']);
|
130 |
+
$page = is_null($response['next_page']) ? 0 : $page + 1;
|
131 |
+
}
|
132 |
+
|
133 |
+
return $userFields;
|
134 |
+
}
|
135 |
}
|
app/code/community/Zendesk/Zendesk/Model/Resource/Tickets/Collection.php
CHANGED
@@ -123,15 +123,19 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
|
|
123 |
|
124 |
$all = Mage::getModel('zendesk/api_tickets')->search($params);
|
125 |
|
|
|
|
|
|
|
|
|
|
|
126 |
foreach ($all['results'] as $ticket) {
|
|
|
|
|
127 |
$obj = new Varien_Object();
|
128 |
$obj->setData($ticket);
|
129 |
$this->addItem($obj);
|
130 |
}
|
131 |
|
132 |
-
// Set the users for this collection
|
133 |
-
$this->users = $all['users'];
|
134 |
-
|
135 |
$this->setPageSize($params['per_page']);
|
136 |
$this->setCurPage($params['page']);
|
137 |
$this->setOrder($params['sort_by'], $params['sort_order']);
|
@@ -146,9 +150,13 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
|
|
146 |
public function getCollectionFromView($viewId, array $params = array()) {
|
147 |
$view = Mage::getModel('zendesk/api_views')->execute($viewId, $params);
|
148 |
|
|
|
|
|
|
|
149 |
if (is_array($view['rows'])) {
|
150 |
foreach ($view['rows'] as $row) {
|
151 |
$ticket = array_merge($row, $row['ticket']);
|
|
|
152 |
|
153 |
$this->appendParamsWithoutIdPostfix($ticket, array('requester', 'assignee', 'group'));
|
154 |
|
@@ -158,9 +166,6 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
|
|
158 |
}
|
159 |
}
|
160 |
|
161 |
-
// Set the users for this collection
|
162 |
-
$this->users = (isset($view['users'])) ? $view['users'] : array();
|
163 |
-
|
164 |
$this->_viewColumns = $view['columns'] ? $view['columns'] : array();
|
165 |
|
166 |
$this->setPageSize($params['per_page']);
|
123 |
|
124 |
$all = Mage::getModel('zendesk/api_tickets')->search($params);
|
125 |
|
126 |
+
// Set the users for this collection
|
127 |
+
$this->users = $all['users'];
|
128 |
+
|
129 |
+
$emails = array_column($this->users, 'email', 'id');
|
130 |
+
|
131 |
foreach ($all['results'] as $ticket) {
|
132 |
+
$ticket['requester_email'] = (isset($emails[$ticket['requester_id']]) ? $emails[$ticket['requester_id']] : '');
|
133 |
+
|
134 |
$obj = new Varien_Object();
|
135 |
$obj->setData($ticket);
|
136 |
$this->addItem($obj);
|
137 |
}
|
138 |
|
|
|
|
|
|
|
139 |
$this->setPageSize($params['per_page']);
|
140 |
$this->setCurPage($params['page']);
|
141 |
$this->setOrder($params['sort_by'], $params['sort_order']);
|
150 |
public function getCollectionFromView($viewId, array $params = array()) {
|
151 |
$view = Mage::getModel('zendesk/api_views')->execute($viewId, $params);
|
152 |
|
153 |
+
// Set the users for this collection
|
154 |
+
$this->users = (isset($view['users'])) ? $view['users'] : array();
|
155 |
+
|
156 |
if (is_array($view['rows'])) {
|
157 |
foreach ($view['rows'] as $row) {
|
158 |
$ticket = array_merge($row, $row['ticket']);
|
159 |
+
$ticket['users'] = $this->users;
|
160 |
|
161 |
$this->appendParamsWithoutIdPostfix($ticket, array('requester', 'assignee', 'group'));
|
162 |
|
166 |
}
|
167 |
}
|
168 |
|
|
|
|
|
|
|
169 |
$this->_viewColumns = $view['columns'] ? $view['columns'] : array();
|
170 |
|
171 |
$this->setPageSize($params['per_page']);
|
app/code/community/Zendesk/Zendesk/controllers/Adminhtml/ZendeskController.php
CHANGED
@@ -252,11 +252,12 @@ class Zendesk_Zendesk_Adminhtml_ZendeskController extends Mage_Adminhtml_Control
|
|
252 |
|
253 |
public function launchAction()
|
254 |
{
|
255 |
-
|
256 |
-
if (!$domain) {
|
257 |
return;
|
258 |
}
|
259 |
|
|
|
|
|
260 |
$sso = Mage::getStoreConfig('zendesk/sso/enabled');
|
261 |
|
262 |
if (!$sso) {
|
@@ -340,11 +341,18 @@ class Zendesk_Zendesk_Adminhtml_ZendeskController extends Mage_Adminhtml_Control
|
|
340 |
}
|
341 |
|
342 |
try {
|
343 |
-
$admin = Mage::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
$ticket = array(
|
345 |
'ticket' => array(
|
346 |
'requester_id' => $requesterId,
|
347 |
-
'submitter_id' => $
|
348 |
'subject' => $data['subject'],
|
349 |
'status' => $data['status'],
|
350 |
'priority' => $data['priority'],
|
@@ -526,7 +534,9 @@ class Zendesk_Zendesk_Adminhtml_ZendeskController extends Mage_Adminhtml_Control
|
|
526 |
$this->getResponse()->clearHeaders()->setHeader('Content-type','application/json',true);
|
527 |
Mage::log('Synchronization started', null, 'zendesk.log');
|
528 |
try {
|
529 |
-
$
|
|
|
|
|
530 |
if (is_null($user))
|
531 |
throw new Exception("Connection Failed");
|
532 |
|
@@ -593,7 +603,11 @@ class Zendesk_Zendesk_Adminhtml_ZendeskController extends Mage_Adminhtml_Control
|
|
593 |
);
|
594 |
|
595 |
foreach($data as $field) {
|
|
|
|
|
|
|
596 |
$response = Mage::getModel('zendesk/api_users')->createUserField($field);
|
|
|
597 |
if (!isset($response['active']) || $response['active'] === false)
|
598 |
Mage::log('Unable to create User Field with key '.$field['user_field']['key'], null, 'zendesk.log');
|
599 |
}
|
@@ -749,13 +763,12 @@ class Zendesk_Zendesk_Adminhtml_ZendeskController extends Mage_Adminhtml_Control
|
|
749 |
|
750 |
private function _domainConfigured()
|
751 |
{
|
752 |
-
|
753 |
-
|
754 |
-
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('zendesk')->__('Please set up Zendesk connection.'));
|
755 |
$this->_redirect('adminhtml/dashboard');
|
756 |
return false;
|
757 |
} else {
|
758 |
-
return
|
759 |
}
|
760 |
}
|
761 |
|
252 |
|
253 |
public function launchAction()
|
254 |
{
|
255 |
+
if (!$this->_domainConfigured()) {
|
|
|
256 |
return;
|
257 |
}
|
258 |
|
259 |
+
$domain = Mage::getStoreConfig('zendesk/general/domain');
|
260 |
+
|
261 |
$sso = Mage::getStoreConfig('zendesk/sso/enabled');
|
262 |
|
263 |
if (!$sso) {
|
341 |
}
|
342 |
|
343 |
try {
|
344 |
+
$admin = Mage::getSingleton('admin/session')->getUser();
|
345 |
+
$submitter = Mage::getModel('zendesk/api_users')->find($admin->getEmail());
|
346 |
+
|
347 |
+
if (!$submitter) {
|
348 |
+
// Default to the user set in the agent email field under Configuration
|
349 |
+
$submitter = Mage::getModel('zendesk/api_users')->me();
|
350 |
+
}
|
351 |
+
|
352 |
$ticket = array(
|
353 |
'ticket' => array(
|
354 |
'requester_id' => $requesterId,
|
355 |
+
'submitter_id' => $submitter['id'],
|
356 |
'subject' => $data['subject'],
|
357 |
'status' => $data['status'],
|
358 |
'priority' => $data['priority'],
|
534 |
$this->getResponse()->clearHeaders()->setHeader('Content-type','application/json',true);
|
535 |
Mage::log('Synchronization started', null, 'zendesk.log');
|
536 |
try {
|
537 |
+
$userFieldKeys = array_column(Mage::getModel('zendesk/api_users')->getUserFields(), 'key');
|
538 |
+
$user = Mage::getModel('zendesk/api_users')->me();
|
539 |
+
|
540 |
if (is_null($user))
|
541 |
throw new Exception("Connection Failed");
|
542 |
|
603 |
);
|
604 |
|
605 |
foreach($data as $field) {
|
606 |
+
if (in_array($field['user_field']['key'], $userFieldKeys))
|
607 |
+
continue;
|
608 |
+
|
609 |
$response = Mage::getModel('zendesk/api_users')->createUserField($field);
|
610 |
+
|
611 |
if (!isset($response['active']) || $response['active'] === false)
|
612 |
Mage::log('Unable to create User Field with key '.$field['user_field']['key'], null, 'zendesk.log');
|
613 |
}
|
763 |
|
764 |
private function _domainConfigured()
|
765 |
{
|
766 |
+
if (!Mage::helper('zendesk')->isConnected()) {
|
767 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('zendesk')->__('Please set up a Zendesk connection.'));
|
|
|
768 |
$this->_redirect('adminhtml/dashboard');
|
769 |
return false;
|
770 |
} else {
|
771 |
+
return true;
|
772 |
}
|
773 |
}
|
774 |
|
app/code/community/Zendesk/Zendesk/etc/config.xml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
<config>
|
20 |
<modules>
|
21 |
<Zendesk_Zendesk>
|
22 |
-
<version>2.1.
|
23 |
</Zendesk_Zendesk>
|
24 |
</modules>
|
25 |
<zendesk>
|
19 |
<config>
|
20 |
<modules>
|
21 |
<Zendesk_Zendesk>
|
22 |
+
<version>2.1.1</version>
|
23 |
</Zendesk_Zendesk>
|
24 |
</modules>
|
25 |
<zendesk>
|
app/code/community/Zendesk/Zendesk/functions.php
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!function_exists('array_column')) {
|
4 |
+
/**
|
5 |
+
* This file is part of the array_column library
|
6 |
+
*
|
7 |
+
* For the full copyright and license information, please view the LICENSE
|
8 |
+
* file that was distributed with this source code.
|
9 |
+
*
|
10 |
+
* @copyright Copyright (c) Ben Ramsey (http://benramsey.com)
|
11 |
+
* @license http://opensource.org/licenses/MIT MIT
|
12 |
+
*/
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Returns the values from a single column of the input array, identified by
|
16 |
+
* the $columnKey.
|
17 |
+
*
|
18 |
+
* Optionally, you may provide an $indexKey to index the values in the returned
|
19 |
+
* array by the values from the $indexKey column in the input array.
|
20 |
+
*
|
21 |
+
* @param array $input A multi-dimensional array (record set) from which to pull
|
22 |
+
* a column of values.
|
23 |
+
* @param mixed $columnKey The column of values to return. This value may be the
|
24 |
+
* integer key of the column you wish to retrieve, or it
|
25 |
+
* may be the string key name for an associative array.
|
26 |
+
* @param mixed $indexKey (Optional.) The column to use as the index/keys for
|
27 |
+
* the returned array. This value may be the integer key
|
28 |
+
* of the column, or it may be the string key name.
|
29 |
+
* @return array
|
30 |
+
*/
|
31 |
+
function array_column($input = null, $columnKey = null, $indexKey = null)
|
32 |
+
{
|
33 |
+
// Using func_get_args() in order to check for proper number of
|
34 |
+
// parameters and trigger errors exactly as the built-in array_column()
|
35 |
+
// does in PHP 5.5.
|
36 |
+
$argc = func_num_args();
|
37 |
+
$params = func_get_args();
|
38 |
+
|
39 |
+
if ($argc < 2) {
|
40 |
+
trigger_error("array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING);
|
41 |
+
return null;
|
42 |
+
}
|
43 |
+
|
44 |
+
if (!is_array($params[0])) {
|
45 |
+
trigger_error(
|
46 |
+
'array_column() expects parameter 1 to be array, ' . gettype($params[0]) . ' given',
|
47 |
+
E_USER_WARNING
|
48 |
+
);
|
49 |
+
return null;
|
50 |
+
}
|
51 |
+
|
52 |
+
if (!is_int($params[1])
|
53 |
+
&& !is_float($params[1])
|
54 |
+
&& !is_string($params[1])
|
55 |
+
&& $params[1] !== null
|
56 |
+
&& !(is_object($params[1]) && method_exists($params[1], '__toString'))
|
57 |
+
) {
|
58 |
+
trigger_error('array_column(): The column key should be either a string or an integer', E_USER_WARNING);
|
59 |
+
return false;
|
60 |
+
}
|
61 |
+
|
62 |
+
if (isset($params[2])
|
63 |
+
&& !is_int($params[2])
|
64 |
+
&& !is_float($params[2])
|
65 |
+
&& !is_string($params[2])
|
66 |
+
&& !(is_object($params[2]) && method_exists($params[2], '__toString'))
|
67 |
+
) {
|
68 |
+
trigger_error('array_column(): The index key should be either a string or an integer', E_USER_WARNING);
|
69 |
+
return false;
|
70 |
+
}
|
71 |
+
|
72 |
+
$paramsInput = $params[0];
|
73 |
+
$paramsColumnKey = ($params[1] !== null) ? (string) $params[1] : null;
|
74 |
+
|
75 |
+
$paramsIndexKey = null;
|
76 |
+
if (isset($params[2])) {
|
77 |
+
if (is_float($params[2]) || is_int($params[2])) {
|
78 |
+
$paramsIndexKey = (int) $params[2];
|
79 |
+
} else {
|
80 |
+
$paramsIndexKey = (string) $params[2];
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
$resultArray = array();
|
85 |
+
|
86 |
+
foreach ($paramsInput as $row) {
|
87 |
+
$key = $value = null;
|
88 |
+
$keySet = $valueSet = false;
|
89 |
+
|
90 |
+
if ($paramsIndexKey !== null && array_key_exists($paramsIndexKey, $row)) {
|
91 |
+
$keySet = true;
|
92 |
+
$key = (string) $row[$paramsIndexKey];
|
93 |
+
}
|
94 |
+
|
95 |
+
if ($paramsColumnKey === null) {
|
96 |
+
$valueSet = true;
|
97 |
+
$value = $row;
|
98 |
+
} elseif (is_array($row) && array_key_exists($paramsColumnKey, $row)) {
|
99 |
+
$valueSet = true;
|
100 |
+
$value = $row[$paramsColumnKey];
|
101 |
+
}
|
102 |
+
|
103 |
+
if ($valueSet) {
|
104 |
+
if ($keySet) {
|
105 |
+
$resultArray[$key] = $value;
|
106 |
+
} else {
|
107 |
+
$resultArray[] = $value;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
}
|
112 |
+
|
113 |
+
return $resultArray;
|
114 |
+
}
|
115 |
+
|
116 |
+
}
|
app/design/adminhtml/default/default/template/zendesk/dashboard/index.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* limitations under the License.
|
16 |
*/
|
17 |
?>
|
18 |
-
<?php if(
|
19 |
<?php if ($this->getIsZendeskDashboard() || Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')): ?>
|
20 |
<?php if ($this->getIsZendeskDashboard()): ?>
|
21 |
<div class="content-header">
|
15 |
* limitations under the License.
|
16 |
*/
|
17 |
?>
|
18 |
+
<?php if( Mage::helper('zendesk')->isConnected() ): ?>
|
19 |
<?php if ($this->getIsZendeskDashboard() || Mage::getStoreConfig('zendesk/backend_features/show_on_dashboard')): ?>
|
20 |
<?php if ($this->getIsZendeskDashboard()): ?>
|
21 |
<div class="content-header">
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>zendesk</name>
|
4 |
-
<version>2.1.
|
5 |
<stability>stable</stability>
|
6 |
<license>Apache Software License v2</license>
|
7 |
<channel>community</channel>
|
@@ -17,17 +17,17 @@
|
|
17 |
- Create support tickets from Contact Us requests<br />
|
18 |
- Easily add the Web Widget to your site
|
19 |
</description>
|
20 |
-
<notes>
|
|
|
|
|
|
|
21 |

|
22 |
-
|
23 |
-
-
|
24 |
-

|
25 |
-
Changes
|
26 |
-
- Removes the Priority field from the admin tickets grid</notes>
|
27 |
<authors><author><name>Jason Smale</name><user>zendesk</user><email>jsmale@zendesk.com</email></author><author><name>Fontis</name><user>fontis</user><email>magento@fontis.com.au</email></author></authors>
|
28 |
-
<date>2015-09-
|
29 |
-
<time>06:
|
30 |
-
<contents><target name="magecommunity"><dir name="Zendesk"><dir name="Zendesk"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7fa35e3e71b4bfb94f2dceddb19e86a0"/><file name="MagentoTest.php" hash="005323c12510f8ac07b46bede8df6349"/><file name="Signup.php" hash="f0d9ec9bc9a99f8643f1c2e6ac9989f2"/><file name="Sync.php" hash="d561b6fcbf69d284e866113e7d9afd44"/><file name="ZendeskTest.php" hash="83b67b5e66f8a9757ec424a72121133c"/></dir><file name="Link.php" hash="779827427e11db311b6e1de9d42818f2"/></dir><dir name="Create"><dir name="Customer"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="4c599ec0b7210b32733318ca40b403f1"/></dir></dir><file name="Grid.php" hash="d5da59c8bd8f939a578d776648a1920c"/></dir><file name="Customer.php" hash="afe5c04c6ac7aa0cfaefded4ceacef37"/><dir name="Edit"><file name="Form.php" hash="c94acf32924a5140edeef7eae238aa4e"/></dir><file name="Edit.php" hash="fae5df1b1f5c5f524257bdf31bd569b4"/><dir name="Order"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="7e9aa2cbd5600865fc77ce35fd6cb73a"/></dir></dir><file name="Grid.php" hash="0e4f085158ce9cc9d3566411b80d4592"/></dir><file name="Order.php" hash="857150ae3de0e3ded29ff972732060b3"/></dir><dir name="Dashboard"><file name="Grids.php" hash="70ed1b41f5a0ea5370ef2ec949117412"/><dir name="Tab"><dir name="Tickets"><dir name="Grid"><file name="Abstract.php" hash="24ef0eb0b5f1a69a07123514f7572ac8"/><file name="All.php" hash="b3cd0bc57392c5d768aa062913d61587"/><file name="Massaction.php" hash="9d3ba44e00b40f4585e167c200b4bfa6"/><dir name="Renderer"><file name="Action.php" hash="53a3b787e3f473a86bd896a0f8d7992e"/><file name="Email.php" hash="6cddcfb5e5517c36f65d9f5a7c938bf2"/><file name="Group.php" hash="814178c8eabb9d8444d2beadd1c07a84"/><file name="Type.php" hash="4f0cd9a88be44fbe7faa4e1f1ba55a38"/><file name="User.php" hash="daae7903e33255421e5ad94eea7f9f31"/></dir><file name="View.php" hash="5b5320a258e838e680bfbde6a8491d88"/></dir></dir></dir></dir><file name="Dashboard.php" hash="3b2ff1e8355be7750f19b93dcfcb50ec"/><file name="Log.php" hash="da85421d71f2e50c1ef2384eedd5688a"/><file name="Menu.php" hash="0f6a56232356c46cd1da31c910985d3b"/><dir name="Order"><dir name="View"><file name="Tickets.php" hash="a83a2ad42801ddbddad2d761779a597b"/></dir></dir></dir><dir name="Customer"><dir name="Tickets"><file name="List.php" hash="eddae13553494e6689ba1736896327a7"/></dir><file name="Tickets.php" hash="619b990e39222018831a42b9bee3f07b"/></dir><file name="WebWidget.php" hash="292d16516b754c0ff0609ac3a8b8e5d2"/></dir><dir name="Helper"><file name="Data.php" hash="1396235bbd7bd575eecdabfa5d03b8bc"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/><file name="Log.php" hash="358c44a7a478dc6166208eb59ccd53fb"/></dir><file name="LICENSE.txt" hash="d9922043f61f536de5d4d7af831e7f73"/><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="86a16008112175b4448e6abd729fce17"/><file name="Groups.php" hash="7c2694b292399083c8209d297a1e6746"/><file name="Requesters.php" hash="9cb06bc83c45b4874ee29750bfc91f0b"/><file name="SupportAddresses.php" hash="819b2e43055e97c58d80ab867c305db3"/><file name="Tickets.php" hash="827e7b286ba74629bb3effd24571864b"/><file name="Users.php" hash="cb9fa80ef3b4f0a362a6f024df9d37be"/><file name="Views.php" hash="e7198804886820e685afedfc65ebadab"/></dir><file name="Observer.php" hash="8097cbd3fcd0352b1b317a55d97f5804"/><dir name="Resource"><dir name="Tickets"><file name="Collection.php" hash="40a539ebc315cd476cbc345d8a1c2654"/></dir><file name="Tickets.php" hash="8eed34a07f8d65e3680ba3e735a3a4a1"/></dir><dir name="Search"><file name="Field.php" hash="2961022121af96a4bc599141d82e6732"/></dir><file name="Search.php" hash="cac21f222a240bab7ea813023c4523f0"/><dir name="Source"><file name="Sortdir.php" hash="916a3319d52661df8a77438935bae56f"/><file name="Sortorder.php" hash="1c58234e5253987027c174aa192a2b5f"/><file name="Views.php" hash="1c7527338bf40082016a62e45fe44622"/></dir><file name="Tickets.php" hash="796782889d46c6bc658f3cd03ee74a1c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ZendeskController.php" hash="a0dccfd6cca44f9f00c26b5a4eaa46a8"/></dir><file name="ApiController.php" hash="84672fb7c6110ebadb9414e9c99ddfd0"/><dir name="Customer"><file name="TicketsController.php" hash="89164100a9640def75e94345e0fe1a14"/></dir><file name="IndexController.php" hash="f2caa943c4619d5add2149ef26443108"/><file name="SsoController.php" hash="2b99171f2c81573405d2258df835fa26"/></dir><dir name="data"><dir name="zendesk_setup"><file name="data-upgrade-1.3.0-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.3.1-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.4.2-2.0.0.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.1-2.0.2.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.5-2.0.6.php" hash="da5a78a75da35ec27e4cbea9704c9f36"/></dir></dir><dir name="etc"><file name="config.xml" hash="9a54236e8732f2bb86c6beba0d3a9526"/><file name="jstranslator.xml" hash="3f3bd74e4b6484613126a2b2f7e34aac"/><file name="system.xml" hash="2f37034472542a19e7fa67e37bb05da4"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="b824f0f7099d22a7f1c0a31d83cd9efc"/></dir><dir name="template"><dir name="zendesk"><file name="autocomplete.phtml" hash="01f42e0bbe3337c058ebc0a8832ddca9"/><dir name="config"><file name="button-generate.phtml" hash="21a25898c1fdea93d31b02ae91c1dd6f"/><file name="button-signup.phtml" hash="8871a0aa0bad7f85a7419853db8e0ce4"/><file name="button-sync.phtml" hash="0a79ffa3cb7021e2883844d37133af3e"/><file name="button-test-magento.phtml" hash="e86287ab32a2ee29ce44aad62249bcab"/><file name="button-test-zendesk.phtml" hash="434623e895e3044fe826639824f90dc9"/><file name="link.phtml" hash="ce55d65900113183e770b2905a31b0eb"/></dir><dir name="create"><file name="customer.phtml" hash="4195705109186f619780613f31d3799d"/><file name="order.phtml" hash="6565383d06a6428ce91238d90a1a0a1a"/></dir><dir name="customer"><file name="tickets.phtml" hash="8e0ecab043f1f988a51e57f848c51348"/></dir><dir name="dashboard"><file name="empty.phtml" hash="d0c30af25f17ff45215d210b48063a46"/><file name="index.phtml" hash="2ea21311d37450c55adff7b44601f00b"/></dir><file name="left-menu.phtml" hash="167b660cb9e7f0bf9fadfbd15a950c42"/><dir name="log"><file name="index.phtml" hash="c54c187ce5f09da6f56078cbfdf3ca29"/></dir><dir name="order"><file name="tickets.phtml" hash="4fe433f11c40708b0eb56aef5b0ce663"/></dir><dir name="tickets"><file name="tickets.phtml" hash="fc60966507ec30a2521413cb9b998770"/></dir><file name="translations.phtml" hash="663af777fa809b84ea9001afa740109f"/><dir name="widget"><file name="grid.phtml" hash="5e7beb2c7e37c9efe225ea3e80f1ffd7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="09058ecabaf99b91c7a57e12c74b0b0d"/></dir><dir name="template"><dir name="zendesk"><dir name="customer"><dir name="tickets"><file name="list.phtml" hash="70faead25efe6e55d4e45d0923ba55e2"/></dir><file name="tickets.phtml" hash="1a33c2429f13b16a98225b43e345ac37"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zendesk_Zendesk.xml" hash="a630cf18c788dafb70d4c156a33eaa07"/></dir></target><target name="magelocale"><dir name="da_DA"><file name="Zendesk_Zendesk.csv" hash="7c20868dcfedb4be3d4c3acd688d0572"/></dir><dir name="de_DE"><file name="Zendesk_Zendesk.csv" hash="3892feb95f2173d3f934fe964708b75b"/></dir><dir name="en_CA"><file name="Zendesk_Zendesk.csv" hash="96f26f9fa0b6060ec5e47ceb5bfee923"/></dir><dir name="en_GB"><file name="Zendesk_Zendesk.csv" hash="6d38497b88ad5da6d2eafa6a7677fd1a"/></dir><dir name="en_US"><file name="Zendesk_Zendesk.csv" hash="82849b0c8a98daf56f6153bbccd8e957"/><file name="Zendesk_Zendesk.yml" hash="ac0019dc50c32ae173adb76cca430214"/></dir><dir name="es_419"><file name="Zendesk_Zendesk.csv" hash="59edae01cec3de6fd62228f391222529"/></dir><dir name="es_ES"><file name="Zendesk_Zendesk.csv" hash="a0c3268b8136b65ee5a5a961212323c0"/></dir><dir name="fr_CA"><file name="Zendesk_Zendesk.csv" hash="e8fba8cc289173cec7db70a527cd5ceb"/></dir><dir name="fr_FR"><file name="Zendesk_Zendesk.csv" hash="7a7609df060c812fb3c30c935b157a75"/></dir><dir name="it_IT"><file name="Zendesk_Zendesk.csv" hash="64de62c856de4c83a69dac292c2f04a7"/></dir><dir name="ja_JA"><file name="Zendesk_Zendesk.csv" hash="d0b39c43faa0a858cf89602d6424d652"/></dir><dir name="ja_JP"><file name="Zendesk_Zendesk.csv" hash="8d0ab1a39457a8ba2dcf986faf4eb742"/></dir><dir name="ko_KO"><file name="Zendesk_Zendesk.csv" hash="46a5072434274f035a34272c5fbf5042"/></dir><dir name="ko_KR"><file name="Zendesk_Zendesk.csv" hash="38aee57e5520d82f607999ce25ba5dc2"/></dir><dir name="nl_NL"><file name="Zendesk_Zendesk.csv" hash="985790d52273a6127c9e941dacc6a25d"/></dir><dir name="no_NO"><file name="Zendesk_Zendesk.csv" hash="455b220ca4d9a2362f78855032ad2482"/></dir><dir name="pt_BR"><file name="Zendesk_Zendesk.csv" hash="90568149b111a18cc7db9debf82f9dfc"/></dir><dir name="pt_PT"><file name="Zendesk_Zendesk.csv" hash="ab137db1555f19a61cfffef603bed878"/></dir><dir name="ru_RU"><file name="Zendesk_Zendesk.csv" hash="534791f7ae25eb537b9fa5c2be70d2d3"/></dir><dir name="sv_SV"><file name="Zendesk_Zendesk.csv" hash="7e0b337874ff0352c1020c56a0649b62"/></dir><dir name="tr_TR"><file name="Zendesk_Zendesk.csv" hash="a0c73068b30d7c1ab4f3100123415249"/></dir><dir name="uk_UK"><file name="Zendesk_Zendesk.csv" hash="cc4e4541ff307b51be5a089e6c5e0f38"/></dir><dir name="zh_CN"><file name="Zendesk_Zendesk.csv" hash="c8bfa3b4398c99ec8fd498b1635be1db"/></dir><dir name="zh_TW"><file name="Zendesk_Zendesk.csv" hash="2fff120a9ee211608f505400b60c733f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="zendesk"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="zendesk-logo.png" hash="ad03156afe04a9dcc8fbf82e1913ac23"/><file name="zendesk-tab.png" hash="0f322d15c392528c212d6491732bc133"/><file name="zendesk.css" hash="b5db959c683981f11b9a83c8787fa461"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="zendesk"><file name="validation.js" hash="488b2fe21b2d34ce0814815e745771a0"/></dir></dir></target></contents>
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
33 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>zendesk</name>
|
4 |
+
<version>2.1.1</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>Apache Software License v2</license>
|
7 |
<channel>community</channel>
|
17 |
- Create support tickets from Contact Us requests<br />
|
18 |
- Easily add the Web Widget to your site
|
19 |
</description>
|
20 |
+
<notes>Fixes:
|
21 |
+
- Sorting disabled on tickets grid (introduced in v2.1.0)
|
22 |
+
- PHP errors when saving incorrect configuration
|
23 |
+
- PHP error when clicking the sync users button multiple times
|
24 |

|
25 |
+
Changes:
|
26 |
+
- Set ticket submitter as logged in Magento user if email is a Zendesk agent or admin</notes>
|
|
|
|
|
|
|
27 |
<authors><author><name>Jason Smale</name><user>zendesk</user><email>jsmale@zendesk.com</email></author><author><name>Fontis</name><user>fontis</user><email>magento@fontis.com.au</email></author></authors>
|
28 |
+
<date>2015-09-16</date>
|
29 |
+
<time>06:28:12</time>
|
30 |
+
<contents><target name="magecommunity"><dir name="Zendesk"><dir name="Zendesk"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7fa35e3e71b4bfb94f2dceddb19e86a0"/><file name="MagentoTest.php" hash="005323c12510f8ac07b46bede8df6349"/><file name="Signup.php" hash="f0d9ec9bc9a99f8643f1c2e6ac9989f2"/><file name="Sync.php" hash="d561b6fcbf69d284e866113e7d9afd44"/><file name="ZendeskTest.php" hash="83b67b5e66f8a9757ec424a72121133c"/></dir><file name="Link.php" hash="779827427e11db311b6e1de9d42818f2"/></dir><dir name="Create"><dir name="Customer"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="4c599ec0b7210b32733318ca40b403f1"/></dir></dir><file name="Grid.php" hash="d5da59c8bd8f939a578d776648a1920c"/></dir><file name="Customer.php" hash="afe5c04c6ac7aa0cfaefded4ceacef37"/><dir name="Edit"><file name="Form.php" hash="c94acf32924a5140edeef7eae238aa4e"/></dir><file name="Edit.php" hash="fae5df1b1f5c5f524257bdf31bd569b4"/><dir name="Order"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="7e9aa2cbd5600865fc77ce35fd6cb73a"/></dir></dir><file name="Grid.php" hash="0e4f085158ce9cc9d3566411b80d4592"/></dir><file name="Order.php" hash="857150ae3de0e3ded29ff972732060b3"/></dir><dir name="Dashboard"><file name="Grids.php" hash="1489d6addfdad17f23bfd34ccaaeb809"/><dir name="Tab"><dir name="Tickets"><dir name="Grid"><file name="Abstract.php" hash="b9cbb0629a4970e39539893869a3cfd2"/><file name="All.php" hash="27a968cc57b9514de3bb9d60e1fda068"/><file name="Massaction.php" hash="9d3ba44e00b40f4585e167c200b4bfa6"/><dir name="Renderer"><file name="Action.php" hash="53a3b787e3f473a86bd896a0f8d7992e"/><file name="Email.php" hash="6cddcfb5e5517c36f65d9f5a7c938bf2"/><file name="Group.php" hash="814178c8eabb9d8444d2beadd1c07a84"/><file name="Type.php" hash="4f0cd9a88be44fbe7faa4e1f1ba55a38"/><file name="User.php" hash="ce383119807c67b55892d404afc2d21c"/></dir><file name="View.php" hash="5b5320a258e838e680bfbde6a8491d88"/></dir></dir></dir></dir><file name="Dashboard.php" hash="330e44b755b2eacf218e4c23210dd709"/><file name="Log.php" hash="da85421d71f2e50c1ef2384eedd5688a"/><file name="Menu.php" hash="0f6a56232356c46cd1da31c910985d3b"/><dir name="Order"><dir name="View"><file name="Tickets.php" hash="a83a2ad42801ddbddad2d761779a597b"/></dir></dir></dir><dir name="Customer"><dir name="Tickets"><file name="List.php" hash="eddae13553494e6689ba1736896327a7"/></dir><file name="Tickets.php" hash="619b990e39222018831a42b9bee3f07b"/></dir><file name="WebWidget.php" hash="292d16516b754c0ff0609ac3a8b8e5d2"/></dir><dir name="Helper"><file name="Data.php" hash="87e07b2164d5b67ad259911b977e1af8"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/><file name="Log.php" hash="358c44a7a478dc6166208eb59ccd53fb"/></dir><file name="LICENSE.txt" hash="d9922043f61f536de5d4d7af831e7f73"/><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="86a16008112175b4448e6abd729fce17"/><file name="Groups.php" hash="7c2694b292399083c8209d297a1e6746"/><file name="Requesters.php" hash="9cb06bc83c45b4874ee29750bfc91f0b"/><file name="SupportAddresses.php" hash="819b2e43055e97c58d80ab867c305db3"/><file name="Tickets.php" hash="827e7b286ba74629bb3effd24571864b"/><file name="Users.php" hash="0e0a75686717dcb6ed6538c9bcd68da6"/><file name="Views.php" hash="e7198804886820e685afedfc65ebadab"/></dir><file name="Observer.php" hash="8097cbd3fcd0352b1b317a55d97f5804"/><dir name="Resource"><dir name="Tickets"><file name="Collection.php" hash="511195d66873bc8496ee9f7ed081df79"/></dir><file name="Tickets.php" hash="8eed34a07f8d65e3680ba3e735a3a4a1"/></dir><dir name="Search"><file name="Field.php" hash="2961022121af96a4bc599141d82e6732"/></dir><file name="Search.php" hash="cac21f222a240bab7ea813023c4523f0"/><dir name="Source"><file name="Sortdir.php" hash="916a3319d52661df8a77438935bae56f"/><file name="Sortorder.php" hash="1c58234e5253987027c174aa192a2b5f"/><file name="Views.php" hash="1c7527338bf40082016a62e45fe44622"/></dir><file name="Tickets.php" hash="796782889d46c6bc658f3cd03ee74a1c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ZendeskController.php" hash="6ed95972ae39ff00117e44e3734a1594"/></dir><file name="ApiController.php" hash="84672fb7c6110ebadb9414e9c99ddfd0"/><dir name="Customer"><file name="TicketsController.php" hash="89164100a9640def75e94345e0fe1a14"/></dir><file name="IndexController.php" hash="f2caa943c4619d5add2149ef26443108"/><file name="SsoController.php" hash="2b99171f2c81573405d2258df835fa26"/></dir><dir name="data"><dir name="zendesk_setup"><file name="data-upgrade-1.3.0-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.3.1-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.4.2-2.0.0.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.1-2.0.2.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.5-2.0.6.php" hash="da5a78a75da35ec27e4cbea9704c9f36"/></dir></dir><dir name="etc"><file name="config.xml" hash="dbfa5af16d771db0ace7e263d095d904"/><file name="jstranslator.xml" hash="3f3bd74e4b6484613126a2b2f7e34aac"/><file name="system.xml" hash="2f37034472542a19e7fa67e37bb05da4"/></dir><file name="functions.php" hash="b6376678adc0a336dc56ede8bc2ec60b"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="b824f0f7099d22a7f1c0a31d83cd9efc"/></dir><dir name="template"><dir name="zendesk"><file name="autocomplete.phtml" hash="01f42e0bbe3337c058ebc0a8832ddca9"/><dir name="config"><file name="button-generate.phtml" hash="21a25898c1fdea93d31b02ae91c1dd6f"/><file name="button-signup.phtml" hash="8871a0aa0bad7f85a7419853db8e0ce4"/><file name="button-sync.phtml" hash="0a79ffa3cb7021e2883844d37133af3e"/><file name="button-test-magento.phtml" hash="e86287ab32a2ee29ce44aad62249bcab"/><file name="button-test-zendesk.phtml" hash="434623e895e3044fe826639824f90dc9"/><file name="link.phtml" hash="ce55d65900113183e770b2905a31b0eb"/></dir><dir name="create"><file name="customer.phtml" hash="4195705109186f619780613f31d3799d"/><file name="order.phtml" hash="6565383d06a6428ce91238d90a1a0a1a"/></dir><dir name="customer"><file name="tickets.phtml" hash="8e0ecab043f1f988a51e57f848c51348"/></dir><dir name="dashboard"><file name="empty.phtml" hash="d0c30af25f17ff45215d210b48063a46"/><file name="index.phtml" hash="a09f9036123888914d347e99312f4039"/></dir><file name="left-menu.phtml" hash="167b660cb9e7f0bf9fadfbd15a950c42"/><dir name="log"><file name="index.phtml" hash="c54c187ce5f09da6f56078cbfdf3ca29"/></dir><dir name="order"><file name="tickets.phtml" hash="4fe433f11c40708b0eb56aef5b0ce663"/></dir><dir name="tickets"><file name="tickets.phtml" hash="fc60966507ec30a2521413cb9b998770"/></dir><file name="translations.phtml" hash="663af777fa809b84ea9001afa740109f"/><dir name="widget"><file name="grid.phtml" hash="5e7beb2c7e37c9efe225ea3e80f1ffd7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="09058ecabaf99b91c7a57e12c74b0b0d"/></dir><dir name="template"><dir name="zendesk"><dir name="customer"><dir name="tickets"><file name="list.phtml" hash="70faead25efe6e55d4e45d0923ba55e2"/></dir><file name="tickets.phtml" hash="1a33c2429f13b16a98225b43e345ac37"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zendesk_Zendesk.xml" hash="a630cf18c788dafb70d4c156a33eaa07"/></dir></target><target name="magelocale"><dir name="da_DA"><file name="Zendesk_Zendesk.csv" hash="7c20868dcfedb4be3d4c3acd688d0572"/></dir><dir name="de_DE"><file name="Zendesk_Zendesk.csv" hash="3892feb95f2173d3f934fe964708b75b"/></dir><dir name="en_CA"><file name="Zendesk_Zendesk.csv" hash="96f26f9fa0b6060ec5e47ceb5bfee923"/></dir><dir name="en_GB"><file name="Zendesk_Zendesk.csv" hash="6d38497b88ad5da6d2eafa6a7677fd1a"/></dir><dir name="en_US"><file name="Zendesk_Zendesk.csv" hash="82849b0c8a98daf56f6153bbccd8e957"/><file name="Zendesk_Zendesk.yml" hash="ac0019dc50c32ae173adb76cca430214"/></dir><dir name="es_419"><file name="Zendesk_Zendesk.csv" hash="59edae01cec3de6fd62228f391222529"/></dir><dir name="es_ES"><file name="Zendesk_Zendesk.csv" hash="a0c3268b8136b65ee5a5a961212323c0"/></dir><dir name="fr_CA"><file name="Zendesk_Zendesk.csv" hash="e8fba8cc289173cec7db70a527cd5ceb"/></dir><dir name="fr_FR"><file name="Zendesk_Zendesk.csv" hash="7a7609df060c812fb3c30c935b157a75"/></dir><dir name="it_IT"><file name="Zendesk_Zendesk.csv" hash="64de62c856de4c83a69dac292c2f04a7"/></dir><dir name="ja_JA"><file name="Zendesk_Zendesk.csv" hash="d0b39c43faa0a858cf89602d6424d652"/></dir><dir name="ja_JP"><file name="Zendesk_Zendesk.csv" hash="8d0ab1a39457a8ba2dcf986faf4eb742"/></dir><dir name="ko_KO"><file name="Zendesk_Zendesk.csv" hash="46a5072434274f035a34272c5fbf5042"/></dir><dir name="ko_KR"><file name="Zendesk_Zendesk.csv" hash="38aee57e5520d82f607999ce25ba5dc2"/></dir><dir name="nl_NL"><file name="Zendesk_Zendesk.csv" hash="985790d52273a6127c9e941dacc6a25d"/></dir><dir name="no_NO"><file name="Zendesk_Zendesk.csv" hash="455b220ca4d9a2362f78855032ad2482"/></dir><dir name="pt_BR"><file name="Zendesk_Zendesk.csv" hash="90568149b111a18cc7db9debf82f9dfc"/></dir><dir name="pt_PT"><file name="Zendesk_Zendesk.csv" hash="ab137db1555f19a61cfffef603bed878"/></dir><dir name="ru_RU"><file name="Zendesk_Zendesk.csv" hash="534791f7ae25eb537b9fa5c2be70d2d3"/></dir><dir name="sv_SV"><file name="Zendesk_Zendesk.csv" hash="7e0b337874ff0352c1020c56a0649b62"/></dir><dir name="tr_TR"><file name="Zendesk_Zendesk.csv" hash="a0c73068b30d7c1ab4f3100123415249"/></dir><dir name="uk_UK"><file name="Zendesk_Zendesk.csv" hash="cc4e4541ff307b51be5a089e6c5e0f38"/></dir><dir name="zh_CN"><file name="Zendesk_Zendesk.csv" hash="c8bfa3b4398c99ec8fd498b1635be1db"/></dir><dir name="zh_TW"><file name="Zendesk_Zendesk.csv" hash="2fff120a9ee211608f505400b60c733f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="zendesk"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="zendesk-logo.png" hash="ad03156afe04a9dcc8fbf82e1913ac23"/><file name="zendesk-tab.png" hash="0f322d15c392528c212d6491732bc133"/><file name="zendesk.css" hash="b5db959c683981f11b9a83c8787fa461"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="zendesk"><file name="validation.js" hash="488b2fe21b2d34ce0814815e745771a0"/></dir></dir></target></contents>
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
33 |
</package>
|