Bilbo Baggins
successor
Dmytro
Ну наследник не совсем катит )
Dmytro
ибо подразумевает что это мне все свалилось в руки
Dmytro
А по факту это уже 5 лет работы )
Bilbo Baggins
да, чиф норм тогда
Anonymous
EVOLUTION CMS Batka
Dmytro
Да ж хочется что и и иностранцы вьехали ))
Anonymous
Ну тогда вместо Batka - портрет Лукашенко
Bilbo Baggins
Anonymous
Лукашенко = Батька
Bilbo Baggins
ну если привязать к месту проведения, то норм, чо.
а так Димка-то какое отношение к нему имеет
Bilbo Baggins
Bilbo Baggins
парни, ну хто-нить попробуйте плагинчик, а?
Am
Chief нормально, иногда даже можно Head
Dr.Watson
Founder
Dr.Watson
Evolution CMS Community Founder
Am
это тоже отлично
Andrey
the "batya" )
Алексей
Dmytro говорил по плагин вечером для просмотра страниц скинеш
Dmytro
ага ща будет
Dmytro
//Hits % OnLogPageHit, OnBeforeDocFormSave, OnDocFormRender
if(!defined('MODX_BASE_PATH')){die('What are you doing? Get out of here!');}
/*
Hits 1.0.3 by Yurik Dertlyan | yurik@unix.am
Plugin for MODx Evolution to register and output page hits
Installation:
- Create plugin with name "Hits" and description "1.0.3"
- Check OnLogPageHit event
- Enable page hits logging in MODx settings page
To output hits use [*hits*]
*/
$document = array(
'id'=>$modx->documentIdentifier,
'table'=>$modx->getFullTableName('site_content')
);
$sql = 'SELECT donthit,hits FROM '.$document['table'].' WHERE id='.$document['id'];
// MODx DBAPI is not recommended here
$r = mysql_query($sql);
if(!$r){
// Creating hits column
mysql_query('ALTER TABLE '.$document['table'].' ADD COLUMN hits INT(10) UNSIGNED NOT NULL');
$r = mysql_query($sql);
}
if(!$modx->db->getRecordCount($r)) return;
// Merging arrays of document data
$document = array_merge($document, $modx->db->getRow($r));
// Skip logging for manager hits
if($document['donthit'] == 1 || (isset($_SESSION['usertype']) && $_SESSION['usertype'] == 'manager')) return;
// Recording hit to database
$modx->db->update('hits=hits+1', $document['table'], 'id='.$document['id']);
//
//
//
// второй плагин hits-output OnWebPagePrerender
preg_match_all("'{counter:([^>]*)}'si", $modx->documentOutput, $match);
foreach($match[1] as $val)
{
$sql = $modx->db->query("SELECT hits FROM ".$modx->getFullTableName('site_content')." WHERE `id`='{$val}'");
$row = $modx->db->getRow( $sql );
$modx->documentOutput=str_replace('{counter:'.$val.'}',$row['hits'],$modx->documentOutput);
}
preg_match_all("'{comments:([^>]*)}'si", $modx->documentOutput, $match2);
foreach($match2[1] as $val)
{
$sql = $modx->db->query("SELECT value FROM ".$modx->getFullTableName('site_tmplvar_contentvalues')." WHERE `contentid`='{$val}' AND `tmplvarid`='11'");
$row = $modx->db->getRow( $sql );
if (!$row) $row['value'] = 0;
$modx->documentOutput=str_replace('{comments:'.$val.'}',$row['value'],$modx->documentOutput);
}
Dr.Watson
Кстати! я бы дальше стал развивать название CMS - Darwin CMS
Dr.Watson
Тогда Revo должны выпустить релиз Lenin...
Bilbo Baggins
или Ernesto
Dmytro
По плагину там ставить на месте вывода типа так
{counter:([+id+])} помойму
Dmytro
это для того что б можно было юзать кешированные сниппеты но при этом оно парсило просмотры
Dmytro
вообщем лайфхак по минимизации запросов к базе )
Dr.Watson
Че не революционер был, скорее Титушка-латинос
Sergey
//OnWebPageInit
include_once(MODX_BASE_PATH . 'assets/lib/MODxAPI/modResource.php');
$recourse = new modResource($modx);
$recourse->edit($modx->documentIdentifier);
$hits = intval($recourse->get('hits'));
$recourse->set('hits', $hits+1);
$recourse->save(false, false);
Dmytro
https://gist.github.com/dmi3yy/2bfd18a4a24ee755c36f488a07b65de9
Dmytro
Вот 1м плагином и на гист что б проще было ))
Dmytro
не забываем только читать коменты ибо там надо sql запросик выполнить расширяем site_content что б максимально облегчить работу плагина
Bilbo Baggins
@kassio Нашел!!!
Bilbo Baggins
)))
Bilbo Baggins
Надо принудительно шаблон передать
Alexander
Alexander
Если вдруг захотите сделать ссылку в шаблоне вместо html , то в 1.0.4 такая шляпа
Михаил
@kassio Нашел!!!
Наверное можно этот момент переделать, чтобы ошибка выводилась, если шаблон не задан
Taras
Всем доброе утро. А кто-то работал с хостингом украина? или почему может быть сбой подключения к БД при установке?
Taras
беру данные на хосте, все так, и сбой(
Am
может не верно данные берете
Am
обычно ошибку показывает
Am
что у Вас?
Taras
все копирую на хостинге, хост пробовал и локал и тот что он дает, пишет сбой и все
Taras
а
Taras
да
Taras
ошибка
Taras
Подключение: ошибка!
Am
внимательно перепроверьте
локалхост обычно используют, коли нет удаленной БД
Am
и дальше пользователь и пароль
Am
может саму базу не создали?
Anonymous
Проверь наличие апострофов, может снес нечаянно
Anonymous
имел в виду кавычки.. `
Taras
Taras
хост и этот пробовал и локал
Taras
я просто с бигет обычно работаю, никогда не было таких проблем
Am
еще раз спрошу - саму базу создали?
No
А MultiTV с типом date или unixtime кто-нибудь использует? Календарик не появляется когда такой типа ставлю, или и не должен? При unixtime появляется иконка календаря справа от поля, клик по ней просто очищает поле
Anton
Привет
Anton
Вопрос по сортировке документов в DocLister
Есть таблица | url | кол-во просмотров |
Таблицу получаю по API
Как сделать сортировку документов в DocLister в порядке уменьшения просмотров?
Раньше Здесь Был Мат_
&orderBy=кол-во просмотров DESC
Am
там еще что-то типа &tvSortType может быть, куда тв вписать нужно по которому (или по которым) идет сортировка
Раньше Здесь Был Мат_
Здесь не тв, а таблица
Раньше Здесь Был Мат_
Контроллер onetable
Раньше Здесь Был Мат_
Вы так вопрос поставили
Раньше Здесь Был Мат_
А из site content должно быть Don hit desc
Раньше Здесь Был Мат_
*donhit
Dmytro
Ечли на базе планина того что я отправил то просто hits
Но может прийдется дописать это поле в контроллере
Dmytro
Но опять же тогда надо вызывать не кешированнвм все а это не лучший вариант
Anton
Dmytro
Да, скинул вчера вечером
Dmytro
Тут в поиске напишите hits
Dmytro
Или gist
Anton
Ок. Посмотрю
Anton
А если я создам колонку hits в modx_site_content, то на сайте ничего не сломается?)
Anton
Ведь судя по инструкции плагина - нет