-0.16
Рейтинг
0.42
Сила

Мультисессии

Обошел всё сообщество в поиске решения насущной для многих проблемы с сессиями, но не нашел. То есть проблемы, когда например залогинившись с мобильного устройства, сбрасывается сессия в браузере ПК, где мы логинились минуту назад.

Плагин Remember Me(http://goo.gl/Flc8FF) решение несерьезное — есть множество примеров (можно найти в поиске), когда его использование приводило к проблемам. К тому же складировать все сессии пользователей в БД неправильно как-то, слишком много записей. Его я в расчет даже не беру.

Здесь(http://goo.gl/oSzm7G) пользователь предлагал решение, но так как резонанс оно не вызвало, наверное его действительно не безопасно использовать.

Единственное решение, которое просится — это позаимствовать решение этой проблемы у Alto CMS(http://goo.gl/X6Smtp).

Знаю, что для многих это серьезная проблема, по этому предлагаю собраться в этом топике, обсудить и нанять специалиста, который сделает плагин.

Постраничность в убывающем порядке

Всем привет.

Кто ни будь задавался вопросом, как реализовать постраничность в убывающем порядке? Чтобы страницы шли не по возрастанию (1, 2, 3, 4,...,500), а по убыванию (500, 499, 498, 497,...,1).

С точки зрения ценности страниц пагинации для поисковых систем, постраничность в убывающем порядке является более удачной, так как в таком случае на страницах будет не меняющийся, статичный контент.

Также интересует, если получится это реализовать, как внедрить новый тип пагинации в отдельный плагин, либо сделать её отдельными плагином, чтобы при помощи него, пагинацию можно было наследовать в других плагинах, не внося изменений в файл движка Viewer.class.php, дабы не усложнять себе жизнь при будущем обновлении.

Вот код из \engine\modules\viewer\Viewer.class.php:
	/**
	 * Формирует постраничный вывод
	 *
	 * @param int $iCount	Общее количество элементов
	 * @param int $iCurrentPage	Текущая страница
	 * @param int $iCountPerPage	Количество элементов на одну страницу
	 * @param int $iCountPageLine	Количество ссылок на другие страницы
	 * @param string $sBaseUrl	Базовый URL, к нему будет добавлять постикс /pageN/  и GET параметры
	 * @param array $aGetParamsList	Список GET параметров, которые необходимо передавать при постраничном переходе
	 * @return array
	 */
	public function MakePaging($iCount,$iCurrentPage,$iCountPerPage,$iCountPageLine,$sBaseUrl,$aGetParamsList=array()) {
		if ($iCount==0) {
			return false;
		}

		$iCountPage=ceil($iCount/$iCountPerPage);
		if (!preg_match("/^[1-9]\d*$/i",$iCurrentPage)) {
			$iCurrentPage=1;
		}
		if ($iCurrentPage>$iCountPage) {
			$iCurrentPage=$iCountPage;
		}

		$aPagesLeft=array();
		$iTemp=$iCurrentPage-$iCountPageLine;
		$iTemp = $iTemp<1 ? 1 : $iTemp;
		for ($i=$iTemp;$i<$iCurrentPage;$i++) {
			$aPagesLeft[]=$i;
		}

		$aPagesRight=array();
		for ($i=$iCurrentPage+1;$i<=$iCurrentPage+$iCountPageLine and $i<=$iCountPage;$i++) {
			$aPagesRight[]=$i;
		}

		$iNextPage = $iCurrentPage<$iCountPage ? $iCurrentPage+1 : false;
		$iPrevPage = $iCurrentPage>1 ? $iCurrentPage-1 : false;

		$sGetParams='';
		if (is_string($aGetParamsList) or count($aGetParamsList)){
			$sGetParams='?'.(is_array($aGetParamsList) ? http_build_query($aGetParamsList,'','&') : $aGetParamsList);
		}
		$aPaging=array(
			'aPagesLeft' => $aPagesLeft,
			'aPagesRight' => $aPagesRight,
			'iCount' => $iCount,
			'iCountPage' => $iCountPage,
			'iCurrentPage' => $iCurrentPage,
			'iNextPage' => $iNextPage,
			'iPrevPage' => $iPrevPage,
			'sBaseUrl' => rtrim($this->Tools_Urlspecialchars($sBaseUrl),'/'),
			'sGetParams' => $sGetParams,
		);
		/**
		 * Избавляемся от дублирования страниц с page=1
		 */
		if ($aPaging['iCurrentPage']==1) {
			$this->SetHtmlCanonical($aPaging['sBaseUrl'].'/'.$aPaging['sGetParams']);
		}
		return $aPaging;
	}

Text.class.php для iframe от coub.com (решено)

Помогите пожалуйста настроить преобразование ссылки на coube.com в iframe видео при помощи тега video.

Вот что вышло у меня:
$sText = preg_replace('/<video>http:\/\/(?:www\.|)coub\.com\/view\/(\d+).*<\/video>/i', '<iframe src="http://coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false" allowfullscreen="true" frameborder="0" width="640" height="480"></iframe>', $sText);

Но не работает…

Решение

Правильный код:
/**
		 * coub.com
		 */
		$sText = preg_replace('/<video>http:\/\/(?:www\.|)coub\.com\/view\/(\w+).*<\/video>/i', '<iframe src="http://coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false" allowfullscreen="true" frameborder="0" width="640" height="480"></iframe>', $sText);