Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 3377 Просмотров
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Приветствую всех форумчан!
Задумалось однажды мне переделать стандартную навигацию, отображаемую под каким-либо материалом.  ^-^
По умолчанию (Joostina 1.1.3. и не только она) было что-то вроде такого, на мой взгляд, скучноватого:



На главной странице разрабатываемого мною сайта новости имеют следующий вид:



Две самых свежих новости размещены вверху стандартными средствами главного меню. Ниже слева идет колонка новостей постарше, которые выводятся с помощью замечательного модуля dgm_news_ultra_plus_lite. Вот и решил я на его (модуля) основе переделать навигацию.
Устанавливаем модуль (в аттаче). Больше ничего делать с ним пока не понадобится.
Исходный файл для модификации - components/com_content/content.html.php (обязательно сохраните его резервную копию - мало ли чего).
Ищем строки
Код
/**
* Writes Next & Prev navigation button
*/
 function Navigation( &$row, &$params ) {

После всех доработок, функция приняла следующий вид:
Код

/**
* Writes Next & Prev navigation button
*/
function Navigation( &$row, &$params ) {
global $task;
global $database;

$link_part = 'index.php?option=com_content&amp;task=view&amp;id=';

// determines links to next and prev content items within category
if ( $params->get( 'item_navigation' ) ) {

$prev_id = $row->prev;
$next_id = $row->next;

if ( $row->prev ) {
$row->prev = sefRelToAbs( $link_part . $row->prev . $row->Itemid_link );
} else {
$row->prev = 0;
}

if ( $row->next ) {
$row->next = sefRelToAbs( $link_part . $row->next . $row->Itemid_link );
} else {
$row->next = 0;
}
}

if ( $params->get( 'item_navigation' ) && ( $task == 'view' ) && !$params->get( 'popup' ) && ( $row->prev || $row->next ) ) {

global $mosConfig_offset, $mosConfig_live_site, $mainframe, $mosConfig_cachepath, $mosConfig_cachetime;

// TITLE
$item_title = "";
$class_title = "";
$show_class_title = 1;
$show_title = 1;
$title_limit = 10;
$lt  = 0;
// TIME
$vremya = 1;
$data_format = "d:m:Yг.";
$now = _CURRENT_SERVER_TIME;
//IMAGE
$imageWidth = "128";
$imageHeight = "";
$thumb_width = 128;
$thumb_filter = 0;
$Zoom_Crop = 0;
$thumb_filter_color = 1;
$pik = 1;
$noimage = "";
$iW     = $imageWidth;
$iH     = $imageHeight;
//ZOOM CROP
if ($Zoom_Crop==1){ $zc = '&zc=1'; } else { $zc = ''; }
//INTRO
$show_intro = 1;
$introtext_limit = 25;
$li  = 1;
$lmttext  = 1;
$clear_tag = 1;

?>

<table align="center" width="85%"><tr><td width="50%" valign="top">

<?php

if ( $prev_id ) {

$query = "SELECT a.id, a.images, a.catid, a.created, a.introtext, a.title, cc.id AS cc_id, cc.title AS cc_title
FROM jos_content AS a
LEFT JOIN jos_categories AS cc ON cc.id = a.catid
WHERE a.id = $prev_id";

$database->setQuery( $query );
$rows = $database->loadObjectList();

if (!function_exists('showsmallimg')) {
function showsmallimg (&$myrow)
{
global $mosConfig_live_site;
$myrow->images = explode("\n", $myrow->images);
$total = count($myrow->images);
$image = '';
for ($i=0; $i<$total; $i++) {
$image = trim($myrow->images[$i]);
if ($image) {
$filename = explode('|', $image);
$image = $filename[0];
break;
}
}
return $image;
}
}

foreach ( $rows as $myrow ) {

//title
if ($lt==1){ $myrow->title = substr($myrow->title, 0, $title_limit).'...';
} else { $myrow->title;
}

    if ($show_title) {
        if ($show_class_title == 1){
            $enable_title = 'class="contentpagetitle"';
//$enable_title = 'class="'.$c_t.'"';
} else {$enable_title = '';}

        $TITLE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id ) .'" '. $enable_title . '>' . $myrow->title .'</a>';
    } else {$TITLE = '';}
//time
$created = strtotime( $myrow->created );
$created = date( $data_format, $created);
$TIME = $created;

// intro
    if ($clear_tag == 1){
        $myrow->introtext = preg_replace('#<.*?>#is', '' , $myrow->introtext);
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    } else {
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    }
//limit intro
    if ($li==1){
        if ($lmttext==1){  //str_word_count
$string = $myrow->introtext;
$intro = $string;
              $intro = implode(" ", array_slice(preg_split("/\s+/", $string), 0, $introtext_limit)).'&nbsp;...';
        } else {
           $intro = substr($myrow->introtext, 0, $introtext_limit).'...';
        }
    } else { $intro = $myrow->introtext; }

if ($show_intro==1) { $INTROTEX = $intro;
    } else { $INTROTEX =''; }

// image
$html_image = showsmallimg($myrow);

//THUMBS
    $imgPrefix = $mosConfig_live_site .'/modules/mod_dgm-news_ultra/img/img.php?src=../../../images/stories/';
    if ($thumb_width==1){
        if ($thumb_filter==1){
            if ($thumb_filter_color==1){
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                } else {
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
            }
        } else {
            $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
            $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
        }
    } else {
        $dgmimg = $mosConfig_live_site .'/images/stories/'. $html_image;
        $no_image = $mosConfig_live_site .'/images/stories/'. $noimage;
    }

    if ($html_image) {
        if ($pik==1) {
             $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $dgmimg .'" border="0" width="'. $iW .'"  /></a>';
         }
    } else {
        if ($pik==1) {
            $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $no_image .'" border="0" width="'.$iW.'"/></a>';
        }
    }

} // end foreach

?>

<table class="smallnews_navi">
<tr>
<td colspan="2" align="left">&nbsp;&nbsp;<?php echo $TITLE; ?><div class="info"><?php echo $TIME; ?></div></td>
</tr>
<tr>
<td><?php echo $IMAGE; ?></td>
<td style="text-align:justify;"><?php echo $INTROTEX; ?><?php echo //$READMORE; ?></td>
</tr>
</table></td>

<?php }

if ( $next_id ) {

$query = "SELECT a.id, a.images, a.catid, a.created, a.introtext, a.title, cc.id AS cc_id, cc.title AS cc_title
FROM jos_content AS a
LEFT JOIN jos_categories AS cc ON cc.id = a.catid
WHERE a.id = $next_id";

$database->setQuery( $query );
$rows = $database->loadObjectList();

if (!function_exists('showsmallimg')) {
function showsmallimg (&$myrow)
{
global $mosConfig_live_site;
$myrow->images = explode("\n", $myrow->images);
$total = count($myrow->images);
$image = '';
for ($i=0; $i<$total; $i++) {
$image = trim($myrow->images[$i]);
if ($image) {
$filename = explode('|', $image);
$image = $filename[0];
break;
}
}
return $image;
}
}

foreach ( $rows as $myrow ) {

//title
if ($lt==1){ $myrow->title = substr($myrow->title, 0, $title_limit).'...';
} else { $myrow->title;
}

    if ($show_title) {
        if ($show_class_title == 1){
            $enable_title = 'class="contentpagetitle"';
//$enable_title = 'class="'.$c_t.'"';
} else {$enable_title = '';}

        $TITLE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id ) .'" '. $enable_title . '>' . $myrow->title .'</a>';
    } else {$TITLE = '';}
//time
$created = strtotime( $myrow->created );
$created = date( $data_format, $created);
$TIME = $created;

// intro
    if ($clear_tag == 1){
        $myrow->introtext = preg_replace('#<.*?>#is', '' , $myrow->introtext);
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    } else {
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    }
//limit intro
    if ($li==1){
        if ($lmttext==1){  //str_word_count
$string = $myrow->introtext;
$intro = $string;
              $intro = implode(" ", array_slice(preg_split("/\s+/", $string), 0, $introtext_limit)).'&nbsp;...';
        } else {
           $intro = substr($myrow->introtext, 0, $introtext_limit).'...';
        }
    } else { $intro = $myrow->introtext; }

if ($show_intro==1) { $INTROTEX = $intro;
    } else { $INTROTEX =''; }

// image
$html_image = showsmallimg($myrow);

//THUMBS
    $imgPrefix = $mosConfig_live_site .'/modules/mod_dgm-news_ultra/img/img.php?src=../../../images/stories/';
    if ($thumb_width==1){
        if ($thumb_filter==1){
            if ($thumb_filter_color==1){
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                } else {
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
            }
        } else {
            $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
            $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
        }
    } else {
        $dgmimg = $mosConfig_live_site .'/images/stories/'. $html_image;
        $no_image = $mosConfig_live_site .'/images/stories/'. $noimage;
    }

    if ($html_image) {
        if ($pik==1) {
             $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $dgmimg .'" border="0" width="'. $iW .'"  /></a>';
         }
    } else {
        if ($pik==1) {
            $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $no_image .'" border="0" width="'.$iW.'"/></a>';
        }
    }

} // end foreach

?>

<td width="50%" valign="top">
<table class="smallnews_navi">
<tr>
<td colspan="2" align="left">&nbsp;&nbsp;<?php echo $TITLE; ?><div class="info"><?php echo $TIME; ?></div></td>
</tr>
<tr>
<td><?php echo $IMAGE; ?></td>
<td style="text-align:justify;"><?php echo $INTROTEX; ?></td>
</tr>
</table>
</td>

<?php } ?>

</tr>
</table>
<br />

<?php
}
}

// dal'she snova vse staroe

/**
* Writes the edit form for new and existing content item
*
* A new record is defined when <var>$row</var> is passed with the <var>id</var>
* property set to 0.
* @param mosContent The category object
* @param string The html for the groups select list
*/


Вот полученный мною результат:



Не знаю как вам, а мне он нравится больше старого.  ::)
Теперь о грустном. Код я привел "как есть". Не то, чтобы он не работает... Работает. Но для своих нужд (то есть ваших) придется в нем немножко покопаться - с дизайном, стилями, настройками и пр.

В-общем, если кому-то кроме меня хинт пригодится - буду рад.

[вложение удалено Администратором]
В комнате с белым потолком
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Re: Новая навигация по материалам.
« Ответ #1 : 07.06.2008, 14:09:39 »
Сегодня в том же ключе доработана функция showLinks, выводящая список заголовков материалов какой-либо категории.
В файле content.html.php ищем строки
Код
/**
* Display links to content items
*/
 function showLinks( &$rows, $links, $total, $i=0, $show=1, $ItemidCount=NULL ) {
...

и модифицируем эту функцию следующим образом:

Код
/**
* Display links to content items
*/
function showLinks( &$rows, $links, $total, $i=0, $show=1, $ItemidCount=NULL ) {
global $mainframe, $Itemid;
global $database, $mosConfig_offset, $mosConfig_live_site, $mainframe, $mosConfig_cachepath, $mosConfig_cachetime;

// getItemid compatibility mode, holds maintenance version number
$compat = (int) $mainframe->getCfg('itemid_compat');

if ( $show ) {
?>
<div>
<strong>
<?php // echo _MORE; ?>
</strong>
</div>
<?php
}

for ( $z = 0; $z < $links; $z++ ) {
if (!isset( $rows[$i] )) {
// stops loop if total number of items is less than the number set to display as intro + leading
break;
}

if ($compat > 0 && $compat <= 11) {
$_Itemid = $mainframe->getItemid( $rows[$i]->id, 0, 0  );
} else {
$_Itemid = $Itemid;
}

if ( $_Itemid && $_Itemid != 99999999 ) {
// where Itemid value is returned, do not add Itemid to url
$Itemid_link = '&amp;Itemid='. $_Itemid;
} else {
// where Itemid value is NOT returned, do not add Itemid to url
$Itemid_link = '';
}

$link = sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $rows[$i]->id . $Itemid_link );




// TITLE
$item_title = "";
$class_title = "";
$show_class_title = 1;
$show_title = 1;
$title_limit = 10;
$lt  = 0;
// TIME
$vremya = 1;
$data_format = "d:m:Yг.";
$now = _CURRENT_SERVER_TIME;
//IMAGE
$imageWidth = "128";
$imageHeight = "";
$thumb_width = 128;
$thumb_filter = 0;
$Zoom_Crop = 0;
$thumb_filter_color = 1;
$pik = 1;
$noimage = "";
$iW     = $imageWidth;
$iH     = $imageHeight;
//ZOOM CROP
if ($Zoom_Crop==1){ $zc = '&zc=1'; } else { $zc = ''; }
//INTRO
$show_intro = 1;
$introtext_limit = 25;
$li  = 1;
$lmttext  = 1;
$clear_tag = 1;

$idd = $rows[$i]->id;

if ( $idd ) {

$query = "SELECT a.id, a.images, a.catid, a.created, a.introtext, a.title, cc.id AS cc_id, cc.title AS cc_title
FROM jos_content AS a
LEFT JOIN jos_categories AS cc ON cc.id = a.catid
WHERE a.id = $idd";

$database->setQuery( $query );
$rowss = $database->loadObjectList();

if (!function_exists('showsmallimg')) {
function showsmallimg (&$myrow)
{
global $mosConfig_live_site;
$myrow->images = explode("\n", $myrow->images);
$total = count($myrow->images);
$image = '';
for ($i=0; $i<$total; $i++) {
$image = trim($myrow->images[$i]);
if ($image) {
$filename = explode('|', $image);
$image = $filename[0];
break;
}
}
return $image;
}
}

foreach ( $rowss as $myrow ) {

//title
if ($lt==1){ $myrow->title = substr($myrow->title, 0, $title_limit).'...';
} else { $myrow->title;
}

    if ($show_title) {
        if ($show_class_title == 1){
            $enable_title = 'class="contentpagetitle"';
//$enable_title = 'class="'.$c_t.'"';
} else {$enable_title = '';}

        $TITLE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id ) .'" '. $enable_title . '>' . $myrow->title .'</a>';
    } else {$TITLE = '';}
//time
$created = strtotime( $myrow->created );
$created = date( $data_format, $created);
$TIME = $created;

// intro
    if ($clear_tag == 1){
        $myrow->introtext = preg_replace('#<.*?>#is', '' , $myrow->introtext);
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    } else {
        $myrow->introtext = preg_replace('/{([a-zA-Z0-9\-_]*)\s*(.*?)}/i', '', $myrow->introtext);
    }
//limit intro
    if ($li==1){
        if ($lmttext==1){  //str_word_count
$string = $myrow->introtext;
$intro = $string;
              $intro = implode(" ", array_slice(preg_split("/\s+/", $string), 0, $introtext_limit)).'&nbsp;...';
        } else {
           $intro = substr($myrow->introtext, 0, $introtext_limit).'...';
        }
    } else { $intro = $myrow->introtext; }

if ($show_intro==1) { $INTROTEX = $intro;
    } else { $INTROTEX =''; }

// image
$html_image = showsmallimg($myrow);

//THUMBS
    $imgPrefix = $mosConfig_live_site .'/modules/mod_dgm-news_ultra/img/img.php?src=../../../images/stories/';
    if ($thumb_width==1){
        if ($thumb_filter==1){
            if ($thumb_filter_color==1){
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=sep';
                } else {
                $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
                $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100&fltr[]=gray';
            }
        } else {
            $dgmimg = $imgPrefix . $html_image .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
            $no_image = $imgPrefix . $noimage .'&w='. $iW .'&h='. $iH . $zc .'&q=100';
        }
    } else {
        $dgmimg = $mosConfig_live_site .'/images/stories/'. $html_image;
        $no_image = $mosConfig_live_site .'/images/stories/'. $noimage;
    }

    if ($html_image) {
        if ($pik==1) {
             $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $dgmimg .'" border="0" width="'. $iW .'"  /></a>';
         }
    } else {
        if ($pik==1) {
            $IMAGE = '<a href="'. sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $myrow->id) .'"><img class="img" src="'. $no_image .'" border="0" width="'.$iW.'"/></a>';
        }
    }

 // end foreach

?>
<table class="smallnews_navi">
<tr>
<td colspan="2" align="left">&nbsp;&nbsp;<?php echo $TITLE; ?><div class="info"><?php echo $TIME; ?></div></td>
</tr>
<tr>
<td><?php echo $IMAGE; ?></td>
<td style="text-align:justify;"><?php echo $INTROTEX; ?><?php echo //$READMORE; ?></td>
</tr>
</table>

<?php } // end foreach

}
$i++;
}
}

/** // eto staroe

* @param object An object with the record
* @param boolean If <code>false</code>, the print button links to a popup window.  If <code>true</code> then the print button invokes the browser print method.
* boston +     content
*/

Полученный результат имеет следующий вид:

В комнате с белым потолком
*

therapy

  • Осваиваюсь на форуме
  • 17
  • 2 / 0
Re: Новая навигация по материалам.
« Ответ #2 : 16.06.2008, 19:24:50 »
не работает :(
белый экран выкидывает...

джустина 1.1.3
*

therapy

  • Осваиваюсь на форуме
  • 17
  • 2 / 0
Re: Новая навигация по материалам.
« Ответ #3 : 16.06.2008, 19:30:50 »
Код
PHP Parse error:  syntax error, unexpected ';', expecting ')' in components/com_content/content.html.php on line 1030
1030
Код
$myrow->introtext = preg_replace(#<.*?>#is', '' , $myrow->introtext);
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Re: Новая навигация по материалам.
« Ответ #4 : 16.06.2008, 22:52:15 »
Держите мой content.html.php - посмотрите работающий пример - странно - я вставлял код прямо из него.

[вложение удалено Администратором]
В комнате с белым потолком
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Re: Новая навигация по материалам.
« Ответ #5 : 11.07.2008, 02:05:41 »
Нашел штучку: оказывается подгружались не миниатюрки, а полные фотографии.
Чтобы грузились маленькие превьюшки (в примере 128*96), нужно поменять значения следующих переменных:
[spoiler title=Было]
Код
//IMAGE
$imageWidth = "128";
$imageHeight = "";
$thumb_width = 128;
$thumb_filter = 0;
$Zoom_Crop = 0;
$thumb_filter_color = 1;
$pik = 1;
$noimage = "";
$iW     = $imageWidth;
$iH     = $imageHeight;
[/spoiler]
[spoiler title=Должно быть]
Код
//IMAGE
$imageWidth = "128";
$imageHeight = "";
$thumb_width = 1;
$thumb_filter = 0;
$Zoom_Crop = 0;
$thumb_filter_color = 1;
$pik = 1;
$noimage = "";
$iW     = 128;
$iH     = 96;
[/spoiler]
В комнате с белым потолком
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

не подключается новая база данных

Автор zepterman

Ответов: 5
Просмотров: 3893
Последний ответ 23.03.2009, 11:11:36
от zepterman
Новая проблема!!! Установлена версия 1.0.15 и снова ошибка

Автор foxxglaf

Ответов: 3
Просмотров: 2704
Последний ответ 03.10.2008, 00:06:09
от foxxglaf