ich habe das Modul mod_dropdownarticles
extensions.joomla.org/extensions/news-di...rticles-listing/7102
installiert und möchte die Sortierung von Title nach Datum ändern.
Habe lange gegoogelt, finde aber nur Fragen, aber keine Antwort.
Dies ist das Original php
Code:
<?php
/**
* Joomla Drop Down Articles
* @package Drop Down Articles
* @version 1.5.2
* @subpackage mod_dropdownarticles.php
* @revision $Revision: 1.2 $
* @author Andrea Forghieri
* @copyright (C) Andrea Forghieri, www.solidsystem.it
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
global $Itemid, $mainframe;
$database = & JFactory :: getDBO();
$user = & JFactory :: getUser();
$moduleclass_sfx = $params->def('moduleclass_sfx', '');
$title_field = $params->def('title_field', '0');
$select_text = $params->def('select_text', 'Go to article...');
$use_local_css = $params->def('use_local_css', '1');
$sections = preg_replace('/[^0-9\,]|\,$/', '', $params->def('sections', ''));
$categories = preg_replace('/[^0-9\,]|\,$/', '', $params->def('categories', ''));
$opt_max_chars = preg_replace('/[^0-9]/', '', $params->def('opt_max_chars', ''));
$select_width = preg_replace('/[^0-9]/', '', $params->def('select_width', ''));
$option_width = preg_replace('/[^0-9]/', '', $params->def('option_width', ''));
$use_itemid = preg_replace('/[^0-9]/', '', $params->def('use_itemid', ''));
$force_itemid = preg_replace('/[^0-9]/', '', $params->def('force_itemid', ''));
switch($use_itemid){
case 1 :
$thisItemid = "<input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\"/>";
break;
case 2:
if($force_itemid > 0 ) $thisItemid = "<input type=\"hidden\" name=\"Itemid\" value=\"$force_itemid\"/>";
break;
default:
$thisItemid = "";
}
$contentConfig = & JComponentHelper :: getParams('com_content');
$access = !$contentConfig->get('shownoauth');
$gid = $user->get('gid');
$jnow =& JFactory::getDate();
$now = $jnow->toMySQL();
$nullDate = $database->getNullDate();
$got_JoomFish = file_exists($mainframe->getCfg('absolute_path') . '/administrator/components/com_joomfish/joomfish.php') ? true : false;
$query = "SELECT c.id AS id, c.title AS title, c.alias as title_alias
FROM #__content AS c
INNER JOIN #__categories AS cat
ON(c.catid = cat.id) AND (cat.access <= $gid)
INNER JOIN #__sections AS sec
ON(c.sectionid = sec.id)
WHERE c.state = '1'
AND ( c.publish_up = " . $database->Quote($nullDate) . " OR c.publish_up <= " . $database->Quote($now) . " )
AND ( c.publish_down = " . $database->Quote($nullDate) . " OR c.publish_down >= " . $database->Quote($now) . " )
AND cat.published = '1'
AND sec.published = '1' ";
if ($access) {
$query .= " AND c.access <= $gid \n";
}
if ($sections != '') {
$query .= "AND sec.id in ($sections) \n";
}
if ($categories != '') {
$query .= "AND cat.id in ($categories) \n";
}
if (!$got_JoomFish) {
if ($title_field == 0) {
$query .= "ORDER BY c.title";
} else {
$query .= "ORDER BY c.alias";
}
}
$database->setQuery($query);
$rows = $database->loadObjectList();
if ($got_JoomFish) {
if ($title_field == 0) {
sortArrayObjects($rows, 'title');
} else {
sortArrayObjects($rows, 'title_alias');
}
}
$sel_style = "";
$opt_style = "";
if ($use_local_css) {
$sel_style = $select_width != "" ? "style=\"width: " . $select_width . "px\"" : "";
$opt_style = $option_width != "" ? "style=\"width: " . $option_width . "px;\"" : "";
}
if ($rows) {
?>
<div class="dda<?php echo $moduleclass_sfx?>" >
<form method="get" action="index.php" name="ddaForm">
<input type="hidden" name="option" value="com_content"/>
<input type="hidden" name="view" value="article"/>
<?php echo $thisItemid; ?>
<select name="id" onchange="this.form.submit();" class="inputbox" <?php echo "$sel_style" ?>>
<?php
if ($select_text != "off") {
echo "<option $opt_style value=\"\">".htmlspecialchars($select_text)."</option>";
}
foreach ($rows as $row) {
if ($title_field == '1') {
$title = $row->title_alias;
} else {
$title = $row->title;
}
$title = $opt_max_chars > 0 && strlen($title) > $opt_max_chars ? substr($title, 0, $opt_max_chars) . '...' : $title;
echo "<option $opt_style value=\"" . $row->id .":". $row->title_alias ."\">". htmlspecialchars($title) . "</option>\n";
}
?>
</select>
</form>
</div>
<?php
} else {
?>
<div class="dda<?php echo $moduleclass_sfx?>" >
No articles to show.
</div>
<?php
}
?>
ich dachte, ich könnte es selber ersetzen, leider fehlt mir das Wissen dazu. Dies habe ich probiert.
Code:
<?php
/**
* Joomla Drop Down Articles
* @package Drop Down Articles
* @version 1.5.2
* @subpackage mod_dropdownarticles.php
* @revision $Revision: 1.2 $
* @author Andrea Forghieri
* @copyright (C) Andrea Forghieri, www.solidsystem.it
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
global $Itemid, $mainframe;
$database = & JFactory :: getDBO();
$user = & JFactory :: getUser();
$moduleclass_sfx = $params->def('moduleclass_sfx', '');
$title_field = $params->def('title_field', '0');
$select_text = $params->def('select_text', 'Go to article...');
$use_local_css = $params->def('use_local_css', '1');
$sections = preg_replace('/[^0-9\,]|\,$/', '', $params->def('sections', ''));
$categories = preg_replace('/[^0-9\,]|\,$/', '', $params->def('categories', ''));
$opt_max_chars = preg_replace('/[^0-9]/', '', $params->def('opt_max_chars', ''));
$select_width = preg_replace('/[^0-9]/', '', $params->def('select_width', ''));
$option_width = preg_replace('/[^0-9]/', '', $params->def('option_width', ''));
$use_itemid = preg_replace('/[^0-9]/', '', $params->def('use_itemid', ''));
$force_itemid = preg_replace('/[^0-9]/', '', $params->def('force_itemid', ''));
switch($use_itemid){
case 1 :
$thisItemid = "<input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\"/>";
break;
case 2:
if($force_itemid > 0 ) $thisItemid = "<input type=\"hidden\" name=\"Itemid\" value=\"$force_itemid\"/>";
break;
default:
$thisItemid = "";
}
$contentConfig = & JComponentHelper :: getParams('com_content');
$access = !$contentConfig->get('shownoauth');
$gid = $user->get('gid');
$jnow =& JFactory::getDate();
$now = $jnow->toMySQL();
$nullDate = $database->getNullDate();
$got_JoomFish = file_exists($mainframe->getCfg('absolute_path') . '/administrator/components/com_joomfish/joomfish.php') ? true : false;
$query = "SELECT c.id AS id, c.title AS title, c.alias as title_alias, c.date as date
FROM #__content AS c
INNER JOIN #__categories AS cat
ON(c.catid = cat.id) AND (cat.access <= $gid)
INNER JOIN #__sections AS sec
ON(c.sectionid = sec.id)
WHERE c.state = '1'
AND ( c.publish_up = " . $database->Quote($nullDate) . " OR c.publish_up <= " . $database->Quote($now) . " )
AND ( c.publish_down = " . $database->Quote($nullDate) . " OR c.publish_down >= " . $database->Quote($now) . " )
AND cat.published = '1'
AND sec.published = '1' ";
if ($access) {
$query .= " AND c.access <= $gid \n";
}
if ($sections != '') {
$query .= "AND sec.id in ($sections) \n";
}
if ($categories != '') {
$query .= "AND cat.id in ($categories) \n";
}
if (!$got_JoomFish) {
if ($title_field == 0) {
$query .= "ORDER BY c.date";
} else {
$query .= "ORDER BY c.title";
}
}
$database->setQuery($query);
$rows = $database->loadObjectList();
if ($got_JoomFish) {
if ($title_field == 0) {
sortArrayObjects($rows, 'date');
} else {
sortArrayObjects($rows, 'title');
}
}
$sel_style = "";
$opt_style = "";
if ($use_local_css) {
$sel_style = $select_width != "" ? "style=\"width: " . $select_width . "px\"" : "";
$opt_style = $option_width != "" ? "style=\"width: " . $option_width . "px;\"" : "";
}
if ($rows) {
?>
<div class="dda<?php echo $moduleclass_sfx?>" >
<form method="get" action="index.php" name="ddaForm">
<input type="hidden" name="option" value="com_content"/>
<input type="hidden" name="view" value="article"/>
<?php echo $thisItemid; ?>
<select name="id" onchange="this.form.submit();" class="inputbox" <?php echo "$sel_style" ?>>
<?php
if ($select_text != "off") {
echo "<option $opt_style value=\"\">".htmlspecialchars($select_text)."</option>";
}
foreach ($rows as $row) {
if ($title_field == '1') {
$title = $row->title_alias;
} else {
$title = $row->title;
}
$title = $opt_max_chars > 0 && strlen($title) > $opt_max_chars ? substr($title, 0, $opt_max_chars) . '...' : $title;
echo "<option $opt_style value=\"" . $row->id .":". $row->title_alias ."\">". htmlspecialchars($title) . "</option>\n";
}
?>
</select>
</form>
</div>
<?php
} else {
?>
<div class="dda<?php echo $moduleclass_sfx?>" >
No articles to show.
</div>
<?php
}
?>
Was mach ich falsch?
Danke für die Hilfe