Занудный вопрос после переезда.

Перенес сайт во внутреннюю папку на сайте, в итоге solcity.info/aboutdominicana/ — казалось бы, все работает.
Единственное что НЕ:
При клике на заголовок любого топика solcity.info/aboutdominicana/dominicana_report/2015/07/16/dominikana-i-bermudskiy-treugolnik-a-esche-dominikanskie-nlo.html
вылезает вот это — страница 404.

При этом при клике на облако тэгов — открываются нормально все, что с тэгом связано
solcity.info/aboutdominicana/tag/%D0%9F%D0%9C%D0%96%20%D0%B2%20%D0%94%D0%BE%D0%BC%D0%B8%D0%BD%D0%B8%D0%BA%D0%B0%D0%BD%D0%B5/

При клике на панельке в сайдбаре «прямой эфир» на любую ссылку на топик из списка —
— снова ошибка 404
В чем может быть проблема?

Откуда браузер "Chrome" мильком при перезагрузке видет старый css стиль ?

Чистил кэш вручную и автоматом, удалял полностью chrome, всеравно эта сволочь при загрузке или переходу на другую страницу мергает старым стилем :( я знаю это не тех поддержка Chrome браузера но все же со мной это случилось впервые на livestreet и по сокольку здесь много знающих людей толк в подобной сфере прошу пояснить что это за фигня и как с ней бороться?

Плагин кэширования

Не понятно немного почему его до сих пор нет, ведь LS не самый быстрый двиг, да и не самый простой. Поисковики на скорость загрузки страниц тоже реагируют. Почему бы не сделать, даже платный, плагин-аналог WP Super Cache? Во первых это ускорит работу LS и даст возможность развивающимся проектам дольше обитать на shared хостинге, а товарищам с VPS/облаками, даст возможность рациональнее использовать свои мощности.

Ошибка кэша

Иногда на некоторых страницах при использовании сайта появляется ошибка:

Fatal error: Uncaught exception 'SmartyException' with message 'unable to write file /public_html/templates/compiled/jupiter/wrt535158fde4dce8.98433891' in /public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_write_file.php:44 Stack trace: #0 /public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_template.php(204): Smarty_Internal_Write_File::writeFile('/d...', '<?php /* Smarty...', Object(Smarty)) #1 /public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource() #2 /public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php(374): Smarty_Internal_TemplateBase->fetch('/home/d...', NULL, NULL, NULL, true) #3 /public_html/engine/modules/viewe in /public_html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_write_file.php on line 44

Она решается очисткой кэша.
Но это не выход, т.к. каждый раз данная ошибка через какое-то время появляется на другой странице. И одно дело если увижу я и кэш почищу, другое, если юзер зайдет и не сможет поработать и уйдет с сайта.

Как решить проблему раз и нвесегда?
Права на файлы с кэшем 777.

Чистим кэш в cron

У меня есть проблема, когда старый Кэш от папки /tmp и /template/cache/name_shablon примерно на следующий день приходится удалять все файлы из: /tmp и /template/cache/name_shablon
Как можно настроить, чтобы данные файлы в этих папках автоматически удалялись каждый 2 часа?
Debian VPS, какая команда CRON?

Как заставить CSS и JS обновляться автоматически при обновлении файлов

У нас на сервере включена полезная опция объединения всех JS и CSS файлов. Задается она в конфиге

/**
 * Параметры компрессии css-файлов
 */
$config['compress']['css']['merge'] = true;       // указывает на необходимость слияния файлов по указанным блокам.
$config['compress']['js']['merge']  = true; 


Однако при обновлении исходников JS и CSS файлов пользователи не получают обновления. Я видел есть плагин ReloadCSS однако он не занимается JS файлами, плюс тыкать кнопку мне тоже не охота совсем. В итоге я полез в код движка и нашел место, где формируется название скомпрессированных файлов

engine/modules/viewer/Viewer.class.php функция Compress
        /**
	 * Сжимает все переданные файлы в один,
	 * использует файловое кеширование
	 *
	 * @param  array  $aFiles	Список файлов
	 * @param  string $sType	Тип файла - js, css
	 * @return array
	 */
	protected function Compress($aFiles,$sType) {
		$sCacheDir  = $this->sCacheDir."/".Config::Get('view.skin');
		$sCacheName = $sCacheDir."/".md5(serialize($aFiles).'_head').".{$sType}";
		$sPathWeb    = Config::Get('path.root.web');
		/**
		 * Если кеш существует, то берем из кеша
		 */
		if(!file_exists($sCacheName)) {


Видно, что в формировании ключа участвуют только имена файлов. Я добавил туда еще и размеры, заодно проверил скорость формирования ключа. Вот такой код у меня получился:

	/**
	 * Сжимает все переданные файлы в один,
	 * использует файловое кеширование
	 *
	 * @param  array  $aFiles	Список файлов
	 * @param  string $sType	Тип файла - js, css
	 * @return array
	 */
	protected function Compress($aFiles,$sType) {
		$sPathWeb    = Config::Get('path.root.web');
		$aFileDates = array();
		$iStart = microtime(true);
		foreach ($aFiles as $sFile) {
			// если файл локальный
			if (strpos($sFile, $sPathWeb)!==false) {
				$sFile=$this->GetServerPath($sFile);
				list($sFile,)=explode('?',$sFile,2);
				$aFileDates[] = filectime($sFile);
			}
		}
		$sCacheDir  = $this->sCacheDir."/".Config::Get('view.skin');
		$sCacheName = $sCacheDir."/".md5(implode($aFiles).implode($aFileDates).'_head').".{$sType}";
		echo "Key calculation took ".(microtime(true) - $iStart)." secs\n";
		/**
		 * Если кеш существует, то берем из кеша
		 */
		if(!file_exists($sCacheName)) {


Проверка показала, что время пренебрежимо мало:

Key calculation took 0,0016648769378662 secs
Key calculation took 0,0010089874267578 secs


Убираем отладочный вывод и радумеся обновлениям JS и CSS.

Можно было бы это сделать плагином, но в плагине пришлось бы переопределить функцию Compress. Может, лучше это изменение просто включить в следующую версию LS.

Еще раз про Кэширование

Я вернусь к уже избитой теме про кэширование данных livestreet-ом, поскольку из комментов и вопросов замечаю явное непонимание используемых механизмов. Несмотря на уже существующий материал, за последние дни я уже столкнулся с несколькими случаями такого непонимания. В этом топике я расскажу про механизмы кэширования, где и как они используются, а именно про:
1. Реализуемый механизм кэширования.
2. Кэширование шаблонов Smarty.
3. Компрессию js и css-файлов, хотя напрямую к кэшированию и не относиться.

Читать дальше →

Как убрать кэширование при update

Не могу понять, делаю свою плагин по образу и подобию других. И вот делаю обновление данных об отеле

public function UpdateHotel(PluginHotels_ModuleHotel_EntityHotel $oHotel)
	{
		if($result = $this->oMapper->UpdateHotel($oHotel))
		{
return true;
		}
		return false;
	}


в маппере такой код

public function UpdateHotel(PluginHotels_ModuleHotel_EntityHotel $oHotel)
	{
		
		$sql="UPDATE hotels__ SET hotel_title_ru=? WHERE hotel_id=?d";
		if ($this->oDb->query($sql,$oHotel->getTitleRu(),$oHotel->getId())) 
		{			
			return true;
		}			
		
		return false;
	}


так вот если данные которые передаются при сабмите формы отличаются от тех, что в таблице записаны для данной строки — все ок, если нет — отдает false, а как принудительно выполнить SQL запрос?

Слетает кодировка для тегов при включении файлового кэша - Fixed

Всем привет!

Столкнулся сегодня с такой проблемой:

Когда включаю у себя на сайте файловый кэш, слетает кодировка у блока «облако тегов» и русские символы отображаются некорректно, весь остальной сайт отображается нормально. При выключении кэша всё норм.

Livestreet 0.5.1

Подскажите, пожалуйста, куда копать?