Jump to content


Photo
- - - - -

как сделать так что бы после одобрения объекта пользователь получал об этом уведомление


Best Answer Cheren-dow , 23 July 2014 - 12:23

Starlight, доброго времени суток. Сделал для вас решение. Откройте следующий файл

сайт\administrator\components\com_zoo\controllers\item.php 

Найдите метод

protected function _editState($state) {
...
}

Внутри метода найдите строку

$this->table->get($id)->setState($state, true);

И после нее вставьте следующий код

if ($state) {
	$item = $this->table->get($id);
	$mailer = JFactory::getMailer();
	$user = JFactory::getUser($item->created_by);
	$config = JFactory::getConfig();
	$sender = array($config->get('mailfrom'), $config->get('fromname'));
	$mailer->setSender($sender);
	$mailer->addRecipient($user->email);
	$body   = $user->name . ', ваш объект «' . $item->name . '» одобрен. Теперь вы можете увидеть его в списках на сайте.';
	$mailer->setSubject('Your subject string');
	$mailer->setBody($body);
	$send = $mailer->Send();
}

Теперь при публикации должны приходить уведомления на почту.

 

Полный, измененный метод

protected function _editState($state) {

	// check for request forgeries
	$this->app->session->checkToken() or jexit('Invalid Token');

	// init vars
	$cid = $this->app->request->get('cid', 'array', array());

	if (count($cid) < 1) {
		$this->app->error->raiseError(500, JText::_('Select an item to edit publish state'));
	}

	try {

		// update item state
		foreach ($cid as $id) {
			$this->table->get($id)->setState($state, true);
		if ($state) {
			$item = $this->table->get($id);
			$mailer = JFactory::getMailer();
			$user = JFactory::getUser($item->created_by);
			$config = JFactory::getConfig();
			$sender = array($config->get('mailfrom'), $config->get('fromname'));
			$mailer->setSender($sender);
			$mailer->addRecipient($user->email);
			$body   = $user->name . ', ваш объект «' . $item->name . '» одобрен. Теперь вы можете увидеть его в списках на сайте.';
			$mailer->setSubject('Your subject string');
			$mailer->setBody($body);
			$send = $mailer->Send();
		}
		}

	} catch (AppException $e) {

		// raise notice on exception
		$this->app->error->raiseNotice(0, JText::_('Error editing Item Published State').' ('.$e.')');

	}

	$this->setRedirect($this->baseurl);
}

Go to the full post


  • This topic is locked This topic is locked
3 replies to this topic

#1 Starlight

Starlight
  • JBZoo User (rus)
  • User rate: 0
  • posts: 51
  • topics: 16

Posted 21 July 2014 - 15:55

 как сделать так что бы после одобрения объекта пользователь получал об этом уведомление


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 21 July 2014 - 16:08

Starlight, готового решения нет - это можно сделать только своими силами.


  • 0
Изображение
 

#3 Starlight

Starlight
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 51
  • topics: 16

Posted 21 July 2014 - 22:58

как конкретнее?


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 23 July 2014 - 12:23   Best Answer

Starlight, доброго времени суток. Сделал для вас решение. Откройте следующий файл

сайт\administrator\components\com_zoo\controllers\item.php 

Найдите метод

protected function _editState($state) {
...
}

Внутри метода найдите строку

$this->table->get($id)->setState($state, true);

И после нее вставьте следующий код

if ($state) {
	$item = $this->table->get($id);
	$mailer = JFactory::getMailer();
	$user = JFactory::getUser($item->created_by);
	$config = JFactory::getConfig();
	$sender = array($config->get('mailfrom'), $config->get('fromname'));
	$mailer->setSender($sender);
	$mailer->addRecipient($user->email);
	$body   = $user->name . ', ваш объект «' . $item->name . '» одобрен. Теперь вы можете увидеть его в списках на сайте.';
	$mailer->setSubject('Your subject string');
	$mailer->setBody($body);
	$send = $mailer->Send();
}

Теперь при публикации должны приходить уведомления на почту.

 

Полный, измененный метод

protected function _editState($state) {

	// check for request forgeries
	$this->app->session->checkToken() or jexit('Invalid Token');

	// init vars
	$cid = $this->app->request->get('cid', 'array', array());

	if (count($cid) < 1) {
		$this->app->error->raiseError(500, JText::_('Select an item to edit publish state'));
	}

	try {

		// update item state
		foreach ($cid as $id) {
			$this->table->get($id)->setState($state, true);
		if ($state) {
			$item = $this->table->get($id);
			$mailer = JFactory::getMailer();
			$user = JFactory::getUser($item->created_by);
			$config = JFactory::getConfig();
			$sender = array($config->get('mailfrom'), $config->get('fromname'));
			$mailer->setSender($sender);
			$mailer->addRecipient($user->email);
			$body   = $user->name . ', ваш объект «' . $item->name . '» одобрен. Теперь вы можете увидеть его в списках на сайте.';
			$mailer->setSubject('Your subject string');
			$mailer->setBody($body);
			$send = $mailer->Send();
		}
		}

	} catch (AppException $e) {

		// raise notice on exception
		$this->app->error->raiseNotice(0, JText::_('Error editing Item Published State').' ('.$e.')');

	}

	$this->setRedirect($this->baseurl);
}


  • 1
Изображение
 




Click to return to top of page in style!