From 96cc8d1f5f0273b5ec164deb0eb7731cdbdc37a3 Mon Sep 17 00:00:00 2001
From: Mzhelskiy Maxim
Date: Sat, 5 Jun 2010 22:16:31 +0000
Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?=
=?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0=20Pag?=
=?UTF-8?q?e=20-=20=D0=BF=D0=BE=D1=8F=D0=B2=D0=B8=D0=BB=D0=B0=D1=81=D1=8C?=
=?UTF-8?q?=20=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0?=
=?UTF-8?q?=20=D0=B8=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=BD=D0=B0=20?=
=?UTF-8?q?=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D1=83=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../page/classes/actions/ActionPage.class.php | 37 ++++++++++++++
.../page/classes/modules/page/Page.class.php | 18 +++++++
.../modules/page/entity/Page.entity.class.php | 12 +++++
.../modules/page/mapper/Page.mapper.class.php | 47 +++++++++++++++---
plugins/page/plugin.xml | 2 +-
plugins/page/templates/language/english.php | 7 +++
plugins/page/templates/language/russian.php | 9 +++-
.../skin/default/actions/ActionPage/add.tpl | 8 +++
.../skin/default/actions/ActionPage/admin.tpl | 18 +++++--
.../templates/skin/default/images/delete.gif | Bin 0 -> 197 bytes
.../templates/skin/default/images/down.png | Bin 0 -> 307 bytes
.../templates/skin/default/images/edit.gif | Bin 0 -> 175 bytes
.../skin/default/images/folder_16x16.gif | Bin 0 -> 363 bytes
.../skin/default/images/new_16x16.gif | Bin 0 -> 630 bytes
.../page/templates/skin/default/images/up.png | Bin 0 -> 313 bytes
.../skin/developer/actions/ActionPage/add.tpl | 6 +++
.../developer/actions/ActionPage/admin.tpl | 14 +++++-
.../templates/skin/developer/images/down.png | Bin 0 -> 307 bytes
.../templates/skin/developer/images/up.png | Bin 0 -> 313 bytes
19 files changed, 164 insertions(+), 14 deletions(-)
create mode 100644 plugins/page/templates/skin/default/images/delete.gif
create mode 100644 plugins/page/templates/skin/default/images/down.png
create mode 100644 plugins/page/templates/skin/default/images/edit.gif
create mode 100644 plugins/page/templates/skin/default/images/folder_16x16.gif
create mode 100644 plugins/page/templates/skin/default/images/new_16x16.gif
create mode 100644 plugins/page/templates/skin/default/images/up.png
create mode 100644 plugins/page/templates/skin/developer/images/down.png
create mode 100644 plugins/page/templates/skin/developer/images/up.png
diff --git a/plugins/page/classes/actions/ActionPage.class.php b/plugins/page/classes/actions/ActionPage.class.php
index b4e9535b..26b11962 100644
--- a/plugins/page/classes/actions/ActionPage.class.php
+++ b/plugins/page/classes/actions/ActionPage.class.php
@@ -116,6 +116,8 @@ class PluginPage_ActionPage extends ActionPlugin {
$_REQUEST['page_seo_keywords']=$oPageEdit->getSeoKeywords();
$_REQUEST['page_seo_description']=$oPageEdit->getSeoDescription();
$_REQUEST['page_active']=$oPageEdit->getActive();
+ $_REQUEST['page_main']=$oPageEdit->getMain();
+ $_REQUEST['page_sort']=$oPageEdit->getSort();
$_REQUEST['page_id']=$oPageEdit->getId();
} else {
/**
@@ -141,6 +143,30 @@ class PluginPage_ActionPage extends ActionPlugin {
$this->Message_AddError($this->Lang_Get('page_admin_action_delete_error'),$this->Lang_Get('error'));
}
}
+ /**
+ * Обработка изменения сортировки страницы
+ */
+ if ($this->GetParam(0)=='sort' and $oPage=$this->PluginPage_Page_GetPageById($this->GetParam(1))) {
+ $this->Security_ValidateSendForm();
+ $sWay=$this->GetParam(2)=='down' ? 'down' : 'up';
+ $iSortOld=$oPage->getSort();
+ if ($oPagePrev=$this->PluginPage_Page_GetNextPageBySort($iSortOld,$oPage->getPid(),$sWay)) {
+ $iSortNew=$oPagePrev->getSort();
+ $oPagePrev->setSort($iSortOld);
+ $this->PluginPage_Page_UpdatePage($oPagePrev);
+ } else {
+ if ($sWay=='down') {
+ $iSortNew=$iSortOld-1;
+ } else {
+ $iSortNew=$iSortOld+1;
+ }
+ }
+ /**
+ * Меняем значения сортировки местами
+ */
+ $oPage->setSort($iSortNew);
+ $this->PluginPage_Page_UpdatePage($oPage);
+ }
/**
* Получаем и загружаем список всех страниц
*/
@@ -172,6 +198,7 @@ class PluginPage_ActionPage extends ActionPlugin {
* Обновляем свойства страницы
*/
$oPageEdit->setActive(getRequest('page_active') ? 1 : 0);
+ $oPageEdit->setMain(getRequest('page_main') ? 1 : 0);
$oPageEdit->setDateEdit(date("Y-m-d H:i:s"));
if (getRequest('page_pid')==0) {
$oPageEdit->setUrlFull(getRequest('page_url'));
@@ -186,6 +213,7 @@ class PluginPage_ActionPage extends ActionPlugin {
$oPageEdit->setText(getRequest('page_text'));
$oPageEdit->setTitle(getRequest('page_title'));
$oPageEdit->setUrl(getRequest('page_url'));
+ $oPageEdit->setSort(getRequest('page_sort'));
/**
* Обновляем страницу
*/
@@ -214,6 +242,7 @@ class PluginPage_ActionPage extends ActionPlugin {
*/
$oPage=Engine::GetEntity('PluginPage_Page');
$oPage->setActive(getRequest('page_active') ? 1 : 0);
+ $oPage->setMain(getRequest('page_main') ? 1 : 0);
$oPage->setDateAdd(date("Y-m-d H:i:s"));
if (getRequest('page_pid')==0) {
$oPage->setUrlFull(getRequest('page_url'));
@@ -228,6 +257,7 @@ class PluginPage_ActionPage extends ActionPlugin {
$oPage->setText(getRequest('page_text'));
$oPage->setTitle(getRequest('page_title'));
$oPage->setUrl(getRequest('page_url'));
+ $oPage->setSort(getRequest('page_sort'));
/**
* Добавляем страницу
*/
@@ -284,6 +314,13 @@ class PluginPage_ActionPage extends ActionPlugin {
$this->Message_AddError($this->Lang_Get('page_create_parent_page_error'),$this->Lang_Get('error'));
$bOk=false;
}
+ /**
+ * Проверяем сортировку
+ */
+ if (getRequest('page_sort') and !is_numeric(getRequest('page_sort'))) {
+ $this->Message_AddError($this->Lang_Get('page_create_sort_error'),$this->Lang_Get('error'));
+ $bOk=false;
+ }
/**
* Выполнение хуков
*/
diff --git a/plugins/page/classes/modules/page/Page.class.php b/plugins/page/classes/modules/page/Page.class.php
index c65c91ad..7d66c61f 100644
--- a/plugins/page/classes/modules/page/Page.class.php
+++ b/plugins/page/classes/modules/page/Page.class.php
@@ -186,5 +186,23 @@ class PluginPage_ModulePage extends Module {
public function SetPagesPidToNull() {
return $this->oMapper->SetPagesPidToNull();
}
+ /**
+ * Получает слудующую по сортировке страницу
+ *
+ * @param unknown_type $iSort
+ * @param unknown_type $sWay
+ * @return unknown
+ */
+ public function GetNextPageBySort($iSort,$sPid,$sWay='up') {
+ return $this->oMapper->GetNextPageBySort($iSort,$sPid,$sWay);
+ }
+ /**
+ * Получает значение максимальной сртировки
+ *
+ * @return unknown
+ */
+ public function GetMaxSortByPid($sPid) {
+ return $this->oMapper->GetMaxSortByPid($sPid);
+ }
}
?>
\ No newline at end of file
diff --git a/plugins/page/classes/modules/page/entity/Page.entity.class.php b/plugins/page/classes/modules/page/entity/Page.entity.class.php
index 9021a087..70a6063f 100644
--- a/plugins/page/classes/modules/page/entity/Page.entity.class.php
+++ b/plugins/page/classes/modules/page/entity/Page.entity.class.php
@@ -49,6 +49,12 @@ class PluginPage_ModulePage_EntityPage extends Entity
}
public function getActive() {
return $this->_aData['page_active'];
+ }
+ public function getMain() {
+ return $this->_aData['page_main'];
+ }
+ public function getSort() {
+ return $this->_aData['page_sort'];
}
public function getLevel() {
@@ -91,5 +97,11 @@ class PluginPage_ModulePage_EntityPage extends Entity
public function setActive($data) {
$this->_aData['page_active']=$data;
}
+ public function setMain($data) {
+ $this->_aData['page_main']=$data;
+ }
+ public function setSort($data) {
+ $this->_aData['page_sort']=$data;
+ }
}
?>
\ No newline at end of file
diff --git a/plugins/page/classes/modules/page/mapper/Page.mapper.class.php b/plugins/page/classes/modules/page/mapper/Page.mapper.class.php
index bc764e77..e721c588 100644
--- a/plugins/page/classes/modules/page/mapper/Page.mapper.class.php
+++ b/plugins/page/classes/modules/page/mapper/Page.mapper.class.php
@@ -27,11 +27,13 @@ class PluginPage_ModulePage_MapperPage extends Mapper {
page_date_add,
page_seo_keywords,
page_seo_description,
- page_active
+ page_active,
+ page_main,
+ page_sort
)
- VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?d)
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?d, ?d, ?d)
";
- if ($iId=$this->oDb->query($sql,$oPage->getPid(),$oPage->getUrl(),$oPage->getUrlFull(),$oPage->getTitle(),$oPage->getText(),$oPage->getDateAdd(),$oPage->getSeoKeywords(),$oPage->getSeoDescription(),$oPage->getActive()))
+ if ($iId=$this->oDb->query($sql,$oPage->getPid(),$oPage->getUrl(),$oPage->getUrlFull(),$oPage->getTitle(),$oPage->getText(),$oPage->getDateAdd(),$oPage->getSeoKeywords(),$oPage->getSeoDescription(),$oPage->getActive(),$oPage->getMain(),$oPage->getSort()))
{
return $iId;
}
@@ -48,10 +50,12 @@ class PluginPage_ModulePage_MapperPage extends Mapper {
page_date_edit = ? ,
page_seo_keywords = ? ,
page_seo_description = ? ,
- page_active = ?
+ page_active = ?,
+ page_main = ?,
+ page_sort = ?
WHERE page_id = ?d
";
- if ($this->oDb->query($sql,$oPage->getPid(),$oPage->getUrl(),$oPage->getUrlFull(),$oPage->getTitle(),$oPage->getText(),$oPage->getDateEdit(),$oPage->getSeoKeywords(),$oPage->getSeoDescription(),$oPage->getActive(),$oPage->getId()))
+ if ($this->oDb->query($sql,$oPage->getPid(),$oPage->getUrl(),$oPage->getUrlFull(),$oPage->getTitle(),$oPage->getText(),$oPage->getDateEdit(),$oPage->getSeoKeywords(),$oPage->getSeoDescription(),$oPage->getActive(),$oPage->getMain(),$oPage->getSort(),$oPage->getId()))
{
return true;
}
@@ -102,7 +106,7 @@ class PluginPage_ModulePage_MapperPage extends Mapper {
page_pid as PARENT_KEY
FROM
".Config::Get('plugin.page.table.page')."
- ORDER by page_title asc;
+ ORDER by page_sort desc;
";
if ($aRows=$this->oDb->select($sql)) {
return $aRows;
@@ -133,5 +137,36 @@ class PluginPage_ModulePage_MapperPage extends Mapper {
}
return $aResult;
}
+
+ public function GetNextPageBySort($iSort,$sPid,$sWay) {
+ if ($sWay=='up') {
+ $sWay='>';
+ $sOrder='asc';
+ } else {
+ $sWay='<';
+ $sOrder='desc';
+ }
+ $sPidNULL='';
+ if (is_null($sPid)) {
+ $sPidNULL='page_pid IS NULL and';
+ }
+ $sql = "SELECT * FROM ".Config::Get('plugin.page.table.page')." WHERE { page_pid = ? and } {$sPidNULL} page_sort {$sWay} ? order by page_sort {$sOrder} limit 0,1";
+ if ($aRow=$this->oDb->selectRow($sql,is_null($sPid) ? DBSIMPLE_SKIP : $sPid, $iSort)) {
+ return Engine::GetEntity('PluginPage_Page',$aRow);
+ }
+ return null;
+ }
+
+ public function GetMaxSortByPid($sPid) {
+ $sPidNULL='';
+ if (is_null($sPid)) {
+ $sPidNULL='and page_pid IS NULL';
+ }
+ $sql = "SELECT max(page_sort) as max_sort FROM ".Config::Get('plugin.page.table.page')." WHERE 1=1 { and page_pid = ? } {$sPidNULL} ";
+ if ($aRow=$this->oDb->selectRow($sql,is_null($sPid) ? DBSIMPLE_SKIP : $sPid)) {
+ return $aRow['max_sort'];
+ }
+ return null;
+ }
}
?>
\ No newline at end of file
diff --git a/plugins/page/plugin.xml b/plugins/page/plugin.xml
index cb56c6f7..83abab22 100644
--- a/plugins/page/plugin.xml
+++ b/plugins/page/plugin.xml
@@ -7,7 +7,7 @@
LiveStreet Developers Team
http://livestreet.ru
- 1.0.2
+ 1.1.0
0.4.1
diff --git a/plugins/page/templates/language/english.php b/plugins/page/templates/language/english.php
index aa3912f6..08cf41da 100644
--- a/plugins/page/templates/language/english.php
+++ b/plugins/page/templates/language/english.php
@@ -42,7 +42,11 @@ return array(
'page_create_seo_keywords_notice' => 'SEO optimization keywords',
'page_create_seo_description' => 'SEO description',
'page_create_seo_description_notice' => 'SEO optimization description',
+ 'page_create_sort' => 'Sort',
+ 'page_create_sort_notice' => 'Sets the sorting when displaying',
+ 'page_create_sort_error' => 'Sorting must be a number',
'page_create_active' => 'Show active page',
+ 'page_create_main' => 'display on the main page',
'page_create_submit_save' => 'Save',
'page_create_submit_save_ok' => 'New page has been created',
'page_create_submit_cancel' => 'Cancel',
@@ -51,6 +55,9 @@ return array(
'page_admin_title' => 'Title',
'page_admin_url' => 'URL',
'page_admin_active' => 'Active',
+ 'page_admin_main' => 'On main',
+ 'page_admin_sort_up' => 'Move up',
+ 'page_admin_sort_down' => 'Move down',
'page_admin_active_yes' => 'Yes',
'page_admin_active_no' => 'No',
'page_admin_action' => 'Action',
diff --git a/plugins/page/templates/language/russian.php b/plugins/page/templates/language/russian.php
index 551d81d1..5522d020 100644
--- a/plugins/page/templates/language/russian.php
+++ b/plugins/page/templates/language/russian.php
@@ -40,9 +40,13 @@ return array(
'page_create_text_error' => 'Текст страницы должен быть от 1 до 50000 символов',
'page_create_seo_keywords' => 'SEO keywords',
'page_create_seo_keywords_notice' => 'Ключевые слова для SEO-оптимизации',
- 'page_create_seo_description' => 'SEO description',
+ 'page_create_seo_description' => 'SEO description',
'page_create_seo_description_notice' => 'Описание для SEO-оптимизации',
+ 'page_create_sort' => 'Сортировка',
+ 'page_create_sort_notice' => 'Устанавливает сортировку при отображении',
+ 'page_create_sort_error' => 'Сортировка должна быть числом',
'page_create_active' => 'показывать страницу',
+ 'page_create_main' => 'отображать на главной странице',
'page_create_submit_save' => 'сохранить',
'page_create_submit_save_ok' => 'Новая страница добавлена',
'page_create_submit_cancel' => 'отмена',
@@ -51,6 +55,9 @@ return array(
'page_admin_title' => 'Название',
'page_admin_url' => 'URL',
'page_admin_active' => 'Активна',
+ 'page_admin_main' => 'На главной',
+ 'page_admin_sort_up' => 'Переместить выше',
+ 'page_admin_sort_down' => 'Переместить ниже',
'page_admin_active_yes' => 'да',
'page_admin_active_no' => 'нет',
'page_admin_action' => 'Действие',
diff --git a/plugins/page/templates/skin/default/actions/ActionPage/add.tpl b/plugins/page/templates/skin/default/actions/ActionPage/add.tpl
index 2491cf46..456dd6d5 100644
--- a/plugins/page/templates/skin/default/actions/ActionPage/add.tpl
+++ b/plugins/page/templates/skin/default/actions/ActionPage/add.tpl
@@ -78,9 +78,17 @@ tinyMCE.init({
{$aLang.page_create_seo_description_notice}
+
+
+ {$aLang.page_create_sort_notice}
+
+
+
+
+
diff --git a/plugins/page/templates/skin/default/actions/ActionPage/admin.tpl b/plugins/page/templates/skin/default/actions/ActionPage/admin.tpl
index 142f364c..1f6941e9 100644
--- a/plugins/page/templates/skin/default/actions/ActionPage/admin.tpl
+++ b/plugins/page/templates/skin/default/actions/ActionPage/admin.tpl
@@ -21,7 +21,8 @@
{$aLang.page_admin_title} |
{$aLang.page_admin_url} |
- {$aLang.page_admin_active} |
+ {$aLang.page_admin_active} |
+ {$aLang.page_admin_main} |
{$aLang.page_admin_action} |
@@ -34,7 +35,7 @@
{/if}
-
+
{$oPage->getTitle()}
|
@@ -47,10 +48,19 @@
{$aLang.page_admin_active_no}
{/if}
|
+
+ {if $oPage->getMain()}
+ {$aLang.page_admin_active_yes}
+ {else}
+ {$aLang.page_admin_active_no}
+ {/if}
+ |
-
+
-
+
+
+
|
{/foreach}
diff --git a/plugins/page/templates/skin/default/images/delete.gif b/plugins/page/templates/skin/default/images/delete.gif
new file mode 100644
index 0000000000000000000000000000000000000000..772d7ba0bbabfc3382f845aafee6b41939f48e7e
GIT binary patch
literal 197
zcmZ?wbhEHb%TW|J~}%7eevR3TigHt|KBiR0g69a
zz@j=J5@aU>tCND76vsqSF4eB^XZxBJ?egaeik0oSaXX#MZS8k!&YYt@3Pxu{*m)Vw
hKX*!qG7C>=^bFY~c|xmj;x4|XskaO#u5f0s1^}H>Q~v+}
literal 0
HcmV?d00001
diff --git a/plugins/page/templates/skin/default/images/down.png b/plugins/page/templates/skin/default/images/down.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcfc08b802b345f8484337dd04d1a62e90a718f8
GIT binary patch
literal 307
zcmV-30nGl1P)?rcgstPFueNo8_quU
zoB=N9&cMJ3w?S1#j6qCHjN#db9}E{BeFTf~aSAY48%Z#{di9Fo_LEm&F(zn8G=c;k
zK7G!>#m3CQ3B@2bNDL$gQiJS=2A}}Lsh14(|Nb#Bh>MGX1z)~=#qjL)TbSYobWcMx
zy=JIqV}%4gx?*gh1kv=2p&sT`WW~6G6|4!yMwbK#FaY1_RM`BaF!}%h002ovPDHLk
FV1ki$d`$oV
literal 0
HcmV?d00001
diff --git a/plugins/page/templates/skin/default/images/edit.gif b/plugins/page/templates/skin/default/images/edit.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e3f4d1c2cb1efef111677f4374b5d080b6ff53b
GIT binary patch
literal 175
zcmZ?wbhEHb41HBqMS``)-av$o~+S94><7mR_O5qh{0^3{U
zw=~K;+w8ZrnD@>~m-lU4A5-y>^t0~6Bs-e<9pe6MW>NL?aAdFs037~#
AAOHXW
literal 0
HcmV?d00001
diff --git a/plugins/page/templates/skin/default/images/new_16x16.gif b/plugins/page/templates/skin/default/images/new_16x16.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9b511d9aa6297c8b77adb25e9250ad95f395f108
GIT binary patch
literal 630
zcmW;J|4+l
zt;JZIW}{m_sI6LZu5?#%eYviy`|`QZeLkP}=j%&6{(|TB%*#Kd-CYtzMNtj|Rrk&|
z5x}?~BQyplI3j~#g<&r&9t^tCYxAkVgdcM}rWrU`%yCeFaT<(>F&`uavI<84i~tXT
zSAZZ0GaOtjygX)D_zCO`co|k7I0-ea7QZ0R)1;|wh!<6#09r&-ySc|QH{~V{9#$tY
zyW#Q?mKW!F)#E1ve*&tCS08Mjt&*3(FG>MUeA900A7h$YEi92AHV!OwKYC`Wtmzje
zj4~MZVU~lcz+`rh(_;6qr_W9}UXoNODoi7R?;e=FaQcXgkp?`V145^H*3U_@s*VLP
zI7uuHGUUcj2lwqa>6>BzbvmH9I81S{(wJn4Ur=XQSy2=xC%$-Z`!Yi6U-x&}h@FKX
zDT0LNPouo7JZ&4b(J)!uqA0SQ)bP>PJr6^5Z|4s;{@Wk~2T_!PN~0G1dqOQSR~k}_
zii3A$XNT+3ZW^kp!msEb>(6Ih+O}~`wLzCt8?Cuke)RVK=T*7`4Vu%Nbf>}&mbDzK
z)kMdI9MRo4nbLBrHvjn5vmXm
zp|MHHF{|U3B}4|Db)HDFPbRKh97nqwP%bG+MT%%o+MZ!I_lEj=0)z+{-UVD`#shB
I?od?LUm}~T5dZ)H
literal 0
HcmV?d00001
diff --git a/plugins/page/templates/skin/default/images/up.png b/plugins/page/templates/skin/default/images/up.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fc4be7cf1f24d51e3b88abe86b37402e8e4edc7
GIT binary patch
literal 313
zcmV-90mlA`P)*tpMi#`TLLI)IC&9EXazr
z6vP?yRAd=mfBp#;1F`@9`_FLd0YVcCOtH42ID@XT9K-vse;9uL`3Kg(&cX!LB*(xA
zRC?+@!+&=M21d9ISMR?BV?I8926i4Hu-MNp?-)LP`iL1yK
{$aLang.page_create_seo_description_notice}
+
+
+
+ {$aLang.page_create_sort_notice}
+
+
diff --git a/plugins/page/templates/skin/developer/actions/ActionPage/admin.tpl b/plugins/page/templates/skin/developer/actions/ActionPage/admin.tpl
index 2c95aa8d..bc6d686c 100644
--- a/plugins/page/templates/skin/developer/actions/ActionPage/admin.tpl
+++ b/plugins/page/templates/skin/developer/actions/ActionPage/admin.tpl
@@ -24,7 +24,8 @@
{$aLang.page_admin_title} |
{$aLang.page_admin_url} |
{$aLang.page_admin_active} |
- {$aLang.page_admin_action} |
+ {$aLang.page_admin_main} |
+ {$aLang.page_admin_action} |
@@ -45,10 +46,19 @@
{$aLang.page_admin_active_no}
{/if}
+
+ {if $oPage->getMain()}
+ {$aLang.page_admin_active_yes}
+ {else}
+ {$aLang.page_admin_active_no}
+ {/if}
+ |
- |
+
+
+
{/foreach}
diff --git a/plugins/page/templates/skin/developer/images/down.png b/plugins/page/templates/skin/developer/images/down.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcfc08b802b345f8484337dd04d1a62e90a718f8
GIT binary patch
literal 307
zcmV-30nGl1P)?rcgstPFueNo8_quU
zoB=N9&cMJ3w?S1#j6qCHjN#db9}E{BeFTf~aSAY48%Z#{di9Fo_LEm&F(zn8G=c;k
zK7G!>#m3CQ3B@2bNDL$gQiJS=2A}}Lsh14(|Nb#Bh>MGX1z)~=#qjL)TbSYobWcMx
zy=JIqV}%4gx?*gh1kv=2p&sT`WW~6G6|4!yMwbK#FaY1_RM`BaF!}%h002ovPDHLk
FV1ki$d`$oV
literal 0
HcmV?d00001
diff --git a/plugins/page/templates/skin/developer/images/up.png b/plugins/page/templates/skin/developer/images/up.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fc4be7cf1f24d51e3b88abe86b37402e8e4edc7
GIT binary patch
literal 313
zcmV-90mlA`P)*tpMi#`TLLI)IC&9EXazr
z6vP?yRAd=mfBp#;1F`@9`_FLd0YVcCOtH42ID@XT9K-vse;9uL`3Kg(&cX!LB*(xA
zRC?+@!+&=M21d9ISMR?BV?I8926i4Hu-MNp?-)LP`iL1yK