Архив

Архив раздела ‘CMS’
29 февраля 2012 Нет комментариев

На примере SELECT. Если одно поле:

$getdb=&JFactory::getDBO();
$q="SELECT mfo FROM jos_users WHERE mfo!='0'";
$getdb->setQuery($q);
$arr=$getdb->loadResultArray();

Если много:

$q="SELECT username, mfo FROM jos_users WHERE mfo!='0'";
$arr=$getdb->loadObjectList();
foreach ($arr as $a) {
	$mfo=$a->mfo; $username=$a->username;
}
Categories: CMS Tags: ,
29 февраля 2012 Нет комментариев
$j_user=&JFactory::getUser();
$user_mfo=$j_user->mfo;
Categories: CMS Tags: ,
29 февраля 2012 3 комментария

Для себя. Без подробностей.

if ($_GET['format']!='raw') {
	header("Location: /?option=com_cn&format=raw&$query=$file_hash");
}
else {
	$content_type="application/octet-stream";
	$mime=&JFactory::getDocument();
	$mime->setMimeEncoding($content_type);
	header("Content-Type: $content_type");
	header("Accept-Ranges: bytes");
	header("Content-Length: ".filesize($file_path));
	header("Content-Disposition: attachment; filename=".$file_name);
	readfile($file_path);
}
Categories: CMS Tags: ,
29 февраля 2012 Нет комментариев

В таблице пользователей:

ALTER TABLE `jos_users` ADD `mfo` INT NOT NULL AFTER `username`

Форма редактирования пользователя через панель администрирования:
/administrator/components/com_users/views/user/tmpl/form.php

<tr>
	<td class="key">
		<label for="mfo">
			<?php echo JText::_( 'mfo' ); ?>
		</label>
	</td>
	<td>
		<input type="text" name="mfo" id="mfo" class="inputbox" size="40" value="<?php echo $this->user->get('mfo'); ?>" autocomplete="off" />
	</td>
</tr>

Русский язык:
/administrator/language/ru-RU/ru-RU.com_users.ini

MFO=МФО

Свойство класса:
/libraries/joomla/database/table/user.php
В class JTableUser extends JTable добавляем:

var $mfo = null;

class JTableUser extends JTable

Categories: CMS Tags: ,
27 декабря 2010 Нет комментариев

Чтобы при создании нового шаблона не загружались стандартные яваскрипты mootools.js и caption.js при подключении

<jdoc:include type="head" />

в index.php создаваемого шаблона пишем:

$user = & JFactory::getUser();
if ($user->get('guest') == 1) {
	$headerstuff = $this->getHeadData();
	$key1 = JURI::base(true). '/media/system/js/mootools.js';
	$key2 = JURI::base(true). '/media/system/js/caption.js';
	unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
	$this->setHeadData($headerstuff);
}

http://joomlaforum.ru/index.php?topic=101107.0

Categories: CMS Tags:
16 ноября 2010 Нет комментариев

Вариант в 1 строку:

echo substr_replace(preg_replace("/[^0-9?]/si","",$products[$j]['price'])-preg_replace("/[^0-9?]/si","",$products[$j]['special']),substr(preg_replace("/[^0-9?]/si","",$products[$j]['price'])-preg_replace("/[^0-9?]/si","",$products[$j]['special']),-4,1).",",-4,1)."&nbsp;р.";
Categories: CMS Tags: ,
30 октября 2010 Нет комментариев

В шаблоне перед foreach где рисуем новости.
Рисуем форму (даты необходимо будет указывать в формате день-месяц-год (xx-xx-xxxx), разделительный знак любой, нам важен порядковый номер цифр), для удобства можно использовать что-то вроде datePicker, но это уже совсем другая история)):

<form method="get" id="set_period">
	<label for="date1">С</label>
		&nbsp;
	<input type="text" name="date1" id="date1" value="<?=$_GET['date1']?>" />
		&nbsp;&ndash;&nbsp;
	<label for="date2">ПО</label>
		&nbsp;
	<input type="text" name="date2" id="date2" value="<?=$_GET['date2']?>" />
		&nbsp;
	<a href="#" onclick="$('#set_period').submit();">Показать</a>
</form>

Формируем массив дат, в нужном нам формате, который позволяет сделать выборку по принципу «больше или равно — меньше или равно», т.е. в формате (год, месяц, день) без разделительных знаков.

<?$news_dates=array();
function ParceResultDates($date) {
	$df_day=substr($date,0,2);
	$df_mon=substr($date,3,2);
	$df_ye=substr($date,6,4);
	$d_format=$df_ye.$df_mon.$df_day;
	return $d_format;
}
foreach($arResult["ITEMS"]as$arDates):
	$news_dates[]=ParceResultDates($arDates['DISPLAY_ACTIVE_FROM']);
endforeach;?>

Далее в foreach где выводим новости:

<?
//if(($_GET['date1']!='')&&($_GET['date2']!='')):
	//$date_from=ParceResultDates($_GET['date1']);
	//$date_to=ParceResultDates($_GET['date2']);
//else:
	//$date_from=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']);
	//$date_to=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']);
//endif;
$date_from=($_GET['date1']!='')?ParceResultDates($_GET['date1']):ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']);
$date_to=($_GET['date2']!='')?ParceResultDates($_GET['date2']):ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']);
$current_active_from=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']);
if (($current_active_from>=$date_from)&&($current_active_from<=$date_to)):
?>
	<!--Тут новости-->
<?endif;?>

Закоментрованная область — это если было бы необходимо указать только обе даты, иначе выводим все новости. Ниже 2 строки для того чтобы можно было указывать только начальную и/или конечную даты

Categories: CMS Tags: