Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Config/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@
</services>

<hooks>
<hook id="dealer.configuration.hook" class="Dealer\Hook\HookManager" scope="request">
<tag name="hook.event_listener" event="module.configuration" type="back" method="onModuleConfigure" />
</hook>
<hook id="dealer.admin.hook" class="Dealer\Hook\AdminInterfaceHook" scope="request">
<tag name="hook.event_listener" event="main.top-menu-modules" type="back" method="onTopMenuTools"/>
<argument type="service" id="router.dealer"/>
Expand All @@ -74,6 +77,7 @@
<tag name="hook.event_listener" event="dealer.edit.js" type="back" method="insertFolderJs"/>
<tag name="hook.event_listener" event="dealer.edit.js" type="back" method="insertBrandJs"/>
<tag name="hook.event_listener" event="dealer.edit.js" type="back" method="insertProductJs"/>
<tag name="hook.event_listener" event="dealer.edit.js" type="back" method="insertGoogleMapsApiJs"/>
</hook>
<hook id="dealer.thelia.admin.hook" class="Dealer\Hook\TheliaAdminHook" scope="request">
<tag name="hook.event_listener" event="content.tab-content" type="back" method="onContentModuleTab"/>
Expand All @@ -89,6 +93,7 @@
</hooks>

<forms>
<form name="dealer.configuration.form" class="Dealer\Form\Configuration" />
<form name="dealer.create" class="Dealer\Form\DealerForm"/>
<form name="dealer.update" class="Dealer\Form\DealerUpdateForm"/>
<form name="dealer-contact.create" class="Dealer\Form\ContactForm"/>
Expand Down
2 changes: 1 addition & 1 deletion Config/module.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<language>en_US</language>
<language>fr_FR</language>
</languages>
<version>2.4.4</version>
<version>2.4.5</version>
<author>
<name>Penalver Antony</name>
<email>apenalver@openstudio.fr</email>
Expand Down
5 changes: 5 additions & 0 deletions Config/routing.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@
<requirement key="id">\d+</requirement>
</route>

<!-- Configuration -->
<route id="dealer.config" path="/admin/module/Dealer/configure" methods="post">
<default key="_controller">Dealer:Configure:configure</default>
</route>

<!-- Contact -->
<route id="dealer.dealer.contact.create" path="/admin/module/Dealer/contact" methods="post">
<default key="_controller">Dealer:Contact:create</default>
Expand Down
81 changes: 81 additions & 0 deletions Controller/ConfigureController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/

namespace Dealer\Controller;

use Dealer\Dealer;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Response;
use Thelia\Controller\Admin\BaseAdminController;
use Thelia\Core\Security\AccessManager;
use Thelia\Core\Security\Resource\AdminResources;
use Thelia\Core\Thelia;
use Thelia\Form\Exception\FormValidationException;
use Thelia\Tools\URL;
use Thelia\Tools\Version\Version;

/**
* Class ConfigureController
* @package DealerGoogleTimeZone\Controller
*/
class ConfigureController extends BaseAdminController
{

public function configureAction()
{
if (null !== $response = $this->checkAuth(AdminResources::MODULE, 'dealer', AccessManager::UPDATE)) {
return $response;
}

$configurationForm = $this->createForm('dealer.configuration.form');
$message = null;

try {
$form = $this->validateForm($configurationForm);

// Get the form field values
$data = $form->getData();

Dealer::setConfigValue('googlemapsapi_key',$data['googlemapsapi_key']);


// Redirect to the success URL,
if ($this->getRequest()->get('save_mode') == 'stay') {
// If we have to stay on the same page, redisplay the configuration page/
$url = '/admin/module/Dealer';
} else {
// If we have to close the page, go back to the module back-office page.
$url = '/admin/modules';
}

return $this->generateRedirect(URL::getInstance()->absoluteUrl($url));
} catch (FormValidationException $ex) {
$message = $this->createStandardFormValidationErrorMessage($ex);
} catch (\Exception $ex) {
$message = $ex->getMessage();
}

$this->setupFormErrorContext(
$this->getTranslator()->trans("Dealer configuration", [], Dealer::MESSAGE_DOMAIN),
$message,
$configurationForm,
$ex
);

// Before 2.2, the errored form is not stored in session
if (Version::test(Thelia::THELIA_VERSION, '2.2', false, "<")) {
return $this->render('module-configure', [ 'module_code' => 'Dealer' ]);
} else {
return $this->generateRedirect(URL::getInstance()->absoluteUrl('/admin/module/Dealer'));
}
}
}
5 changes: 5 additions & 0 deletions Dealer.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ public function update($currentVersion, $newVersion, ConnectionInterface $con =
);
}
}

if (!self::getConfigValue('is_initialized', false)) {
self::setConfigValue('googlemapsapi_key', '');
self::setConfigValue('is_initialized', true);
}
}

public function getHooks()
Expand Down
53 changes: 53 additions & 0 deletions Form/Configuration.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php
/*************************************************************************************/
/* This file is part of the Thelia package. */
/* */
/* Copyright (c) OpenStudio */
/* email : dev@thelia.net */
/* web : http://www.thelia.net */
/* */
/* For the full copyright and license information, please view the LICENSE.txt */
/* file that was distributed with this source code. */
/*************************************************************************************/

namespace Dealer\Form;

use Dealer\Dealer;
use Thelia\Core\Translation\Translator;
use Thelia\Form\BaseForm;
use Thelia\Model\ConfigQuery;

/**
* Class Configuration
* @package DealerGoogleTimeZone\Form
*/
class Configuration extends BaseForm {

protected function buildForm()
{
$form = $this->formBuilder;

$form->add(
"googlemapsapi_key",
"text",
array(
'data' => Dealer::getConfigValue("googlemapsapi_key"),
'label' => Translator::getInstance()->trans("Google Maps Api Key"),
'label_attr' => array(
'for' => "googlemapsapi_key"
),
)
);

}

/**
* @return string the name of you form. This name must be unique
*/
public function getName()
{
return "dealer_configuration";
}


}
29 changes: 29 additions & 0 deletions Hook/HookManager.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php
/*************************************************************************************/

namespace Dealer\Hook;

use Dealer\Dealer;
use Thelia\Core\Event\Hook\HookRenderEvent;
use Thelia\Core\Hook\BaseHook;
use Thelia\Model\ModuleConfig;
use Thelia\Model\ModuleConfigQuery;

class HookManager extends BaseHook
{

public function onModuleConfigure(HookRenderEvent $event)
{

if (null !== $params = ModuleConfigQuery::create()->findByModuleId(Dealer::getModuleId())) {
/** @var ModuleConfig $param */
foreach ($params as $param) {
$vars[ $param->getName() ] = $param->getValue();
}
}

$event->add(
$this->render('module-configuration.html', $vars)
);
}
}
31 changes: 31 additions & 0 deletions Hook/InternalHook.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@

namespace Dealer\Hook;

use Dealer\Dealer;
use Thelia\Core\Event\Hook\HookRenderEvent;
use Thelia\Core\Hook\BaseHook;
use Dealer\Model\DealerQuery;


/**
Expand Down Expand Up @@ -61,4 +63,33 @@ public function insertProductJs(HookRenderEvent $event)
{
//$event->add($this->render("script/dealer-product-js.html", $event->getArguments()));
}

public function insertGoogleMapsApiJs(HookRenderEvent $event)
{
$address = '';
if($this->getRequest()->query->has('dealer_id')) {
$dearler_id = $this->getRequest()->query->get('dealer_id');
if($dearler_id != '') {
$dealer = DealerQuery::create()->findOneById($dearler_id);
$address = $dealer->getAddress1();
if($dealer->getAddress2()) {
$address .= ', ' . $dealer->getAddress2();
}
if($dealer->getAddress3()) {
$address .= ', ' . $dealer->getAddress3();
}
$address .= ', ' . $dealer->getCity() . ', ' . $dealer->getZipcode() . ', ' . $dealer->getCountry()->getTitle();
}
}

$event->add(
$this->render(
"script/dealer-geo-js.html",
[
'address' => $address,
'googlemapsapi_key' => Dealer::getConfigValue('googlemapsapi_key')
]
)
);
}
}
5 changes: 4 additions & 1 deletion templates/backOffice/default/dealer-edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@
{include file="script/dealer-contact-js.html"}
{include file="script/dealer-contact-info-js.html"}
{include file="script/dealer-schedules-js.html"}
{include file="script/dealer-geo-js.html"}
{include file="script/dealer-admin-js.html"}
<script>
(function ($) {
Expand All @@ -164,4 +163,8 @@
})(jQuery);
</script>
{hook name="dealer.edit.js"}
{/block}

{block name="javascript-last-call"}
{hook name="wysiwyg.js" location="wysiwyg-document-edit-js" }
{/block}
4 changes: 4 additions & 0 deletions templates/backOffice/default/dealers.html
Original file line number Diff line number Diff line change
Expand Up @@ -244,4 +244,8 @@
});
</script>
{hook name="dealer.js"}
{/block}

{block name="javascript-last-call"}
{hook name="wysiwyg.js" location="wysiwyg-document-edit-js" }
{/block}
25 changes: 2 additions & 23 deletions templates/backOffice/default/form/dealer-create.html
Original file line number Diff line number Diff line change
Expand Up @@ -105,30 +105,9 @@
</select>
</div>
{/form_field}
{form_field form=$form field="description"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
{intl l=$label d="dealer.bo.default"}
{if $required}<span class="required">*</span>{/if}
</label>

{form_error form=$form field="description"}{$message}{/form_error}
{render_form_field field="description" extra_class="wysiwyg" value=$DESCRIPTION}

<textarea class="form-control" name="{$name}" id="{$label_attr.for}"
placeholder="{intl l='The Dealer description' d="dealer.bo.default"}">{$DESCRIPTION}</textarea>
</div>
{/form_field}
{form_field form=$form field="access"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
{intl l=$label d="dealer.bo.default"}
{if $required}<span class="required">*</span>{/if}
</label>
{render_form_field field="access" extra_class="wysiwyg" value=$ACCESS}

{form_error form=$form field="access"}{$message}{/form_error}

<textarea class="form-control" name="{$name}" id="{$label_attr.for}"
placeholder="{intl l='The Dealer access' d="dealer.bo.default"}">{$ACCESS}</textarea>
</div>
{/form_field}
{/form}
6 changes: 5 additions & 1 deletion templates/backOffice/default/form/dealer-geo.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,15 @@
</div>
{/form_field}
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.dealer.geo" access="UPDATE" module="Dealer"}

<div class="btn-grp">
<button type="button" id="dealer-googlemaps-get" name="dealer_googlemaps_get" class="btn btn-secondary" title="{intl d='dealer.bo.default' l='Get the coordinate via the address'}">{intl d='dealer.bo.default' l='Get the coordinate via the address'}</button>
<button type="submit" class="btn btn-primary">{intl l="Save"}</button>
</div>

<div id="dealer-googlemaps-get-info" class="alert" role="alert"></div>
{/loop}
</form>
{/loop}
</div>
{/form}
{/form}
Loading