Source of file controller.php

Size: 6,341 Bytes - Last Modified: 2016-08-25T18:24:54+02:00

d:/phpdocs/www/modules/texts/backend/controller.php

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
<?php

class ControllerTextsBackend extends AdminController
{
	public function getActionList()
	{
		return array(
			'showlistcat' => 'Показать список категорий текстов',
			'editcat' => 'Редактировать категорию текстов',
			'deletecat' => 'Удаление категории текстов',
			'addcat' => 'Добавить категорию текстов',
			'deletelistcat' => 'Удаление категорий текстов списком',
			'savecat' => 'Сохранение категории текстов, переход к списку'

,			'applycat' => 'Сохранение категории текстов',			'sortcats' => 'Сортировка категорий текстов',

			'showlist' => 'Показать список текстов',
			'edit' => 'Редактировать текст',
			'delete' => 'Удаление текста',
			'add' => 'Добавить текст',
			'deletelist' => 'Удаление текстов списком',
			'save' => 'Сохранить текст, перейти к списку'
,			'apply' => 'Сохранить текст'
,			'sort' => 'Сортировка текстов',
		);
	}
	
	
	private $logs = array(
		'DELETECAT' => 'Удалён раздел текстов id=[0], «[1]»',
		'ADDCAT' => 'Добавлен раздел текстов id=[0]',
		'CHANGECAT' => 'Изменён раздел текстов id=[0], «[1]»',
		'CHANGESORTCAT' => 'Изменена сортировка разделов текста',
		
		'DELETE' => 'Удалён текст id=[0], «[1]»',
		'ADD' => 'Добавлен текст id=[0]',
		'CHANGE' => 'Изменён текст id=[0], «[1]»',
		'CHANGESORT' => 'Изменена сортировка текстов',
	);
	
	//Разделы текстов
	public function showlistcat()
	{
		$this->checkRights();
		$this->viewer->showlistcat();
	}
	
	public function editcat()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$this->viewer->editcat($id);
	}
	
	public function deletecat()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$item = Core::getObject('TextCategory');
		$item->filter($id)->load();
		$this->LogAction($this->logs['DELETECAT'], $item->id, $item->name);
		$item->delete();

		$this->viewer->showlistcat();
	}
	
	public function addcat()
	{
		$this->checkRights();
		$item = Core::getObject('TextCategory');
		$item->add()->save();
		$this->LogAction($this->logs['ADDCAT'], $item->id);
			
		$this->viewer->editcat($item->id);
	}

	public function deletelistcat()
	{
		$this->checkRights();
		foreach($_POST as $key => $value)
		{
			if (($value == 'on') && (strlen($key) > strlen('check_')))
			{
				$id = intval(substr($key, strlen('check_')));
				$item = Core::getObject('TextCategory');
				$item->filter($id)->load();
				$this->LogAction($this->logs['DELETECAT'], $item->id, $item->name);
				$item->delete();
			}
		}
		$this->viewer->showlistcat();
	}

	public function savecat()
	{
		$this->savecatData();
		$this->viewer->showlistcat($this->getDataInt('id'));
	}
	
	public function applycat()
	{
		$this->savecatData();
		$this->viewer->noAction();
	}
	
	private function savecatData()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$item = Core::loadObject('TextCategory', $id);
		$item->name = $this->getDataString('name');
		$item->save();

		$this->LogAction($this->logs['CHANGECAT'], $item->id, $item->name);
	}
	
	public function sortcats()
	{
		$this->checkRights();
		$sortArray = $_POST[$this->moduleName];
		$sort = 10;
		$items = Core::loadObject('TextCategory');
		
		foreach($sortArray as $sortItem)
		{
			$item = clone($items);
			$item->filter(intval($sortItem));
			$item->sort = $sort;
			$item->save();
			$sort += 10;
		}
		$this->LogAction($this->logs['CHANGESORTCAT']);
	}
	
	
	
	
	
	
	
	
	
	
	
	//Тексты
	public function showlist()
	{
		$this->checkRights();
		$key = $this->getDataInt('categorykey');
		$this->viewer->showlist($key);
	}
	
	public function edit()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$this->viewer->edit($id);
	}
	
	public function delete()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$item = Core::getObject('Text');
		$item->filter($id)->load();
		$this->LogAction($this->logs['DELETE'], $item->id, $item->name);
		$item->delete();

		$this->viewer->showlist();
	}
	
	public function add()
	{
		$this->checkRights();
		$categoryKey = $this->getDataInt('categorykey');
		$item = Core::getObject('Text');
		$item->add(array('categoryKey' => $categoryKey))->save();
		$this->LogAction($this->logs['ADD'], $item->id);
			
		$this->viewer->edit($item->id);
	}

	public function deletelist()
	{
		$this->checkRights();
		foreach($_POST as $key => $value)
		{
			if (($value == 'on') && (strlen($key) > strlen('check_')))
			{
				$id = intval(substr($key, strlen('check_')));
				$item = Core::getObject('Text');
				$item->filter($id)->load();
				$this->LogAction($this->logs['DELETE'], $item->id, $item->name);
				$item->delete();
			}
		}
		$this->viewer->showlist();
	}

	public function save()
	{
		$item = $this->saveData();
		$this->viewer->showlist($item->categoryKey);
	}
	
	public function apply()
	{
		$item = $this->saveData();
		$this->viewer->noAction();
	}
	
	private function saveData()
	{
		$this->checkRights();
		$id = $this->getDataInt('id');
		$item = Core::loadObject('Text', $id);
		$item->name = $this->getDataString('name');
		$item->text = $this->getDataString('text');
		$item->categoryKey = $this->getDataString('categoryKey');
		$item->save();

		$this->LogAction($this->logs['CHANGE'], $item->id, $item->name);
		
		return $item;
	}
	
	public function sort()
	{
		$this->checkRights();
		$sortArray = $_POST[$this->moduleName];
		$sort = 10;
		$items = Core::loadObject('Text');
		
		foreach($sortArray as $sortItem)
		{
			$item = clone($items);
			$item->filter(intval($sortItem));
			$item->sort = $sort;
			$item->save();
			$sort += 10;
		}
		$this->LogAction($this->logs['CHANGESORT']);
	}
}