I just changed mylinks (part of the standard XOOPS installation) for weblinks and I'm really satisfied.
Selling points: - It creates "real links" - you can easily import the database of the standard mylinks module - And yes, it has a clear directory structure.
The admin menu of smartsection has an option "Custom Smarty Tag Definition". You can give these smarty tags a value depending on the language. Than you just add these values to the code of your theme.
I prefer this option, although I use the option shown by svaha when I have to add large parts of code that change from language to language.
it boils down mostly to the theme you use and how you design your site.
...
It is not entirely the theme.
For example, content produced by smartsection is not conform W3C too (don't worry, I love this module). A lot of it can be removed by switching to the html-editor but this is a hell of a job.
Many 'errors' reported by the html-validator of w3.org were easy to solve (especially those in the theme), many others were not. I think the validator was a great help to improve my site but it continues giving error-messages well beyond the optimum.
All pages were found in violation of the current W3C Web Content Accessibility Guidelines.
This website is probably unlawful in Britain from the 1st October 2004. The British Disability Discrimination Act makes it unlawful to discriminate against a disabled person by refusing to provide any service provided to members of the public - including websites.
Here is the php-file (kuht_head.php) I'm talking about. Perhaps there is a clever connaisseur around who sees these things directly.
// ------------------------------------------------------------------------- // // XOOPS - PHP Content Management System // // // // ------------------------------------------------------------------------- // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------- // // // // "Spotlight" // // http://linux.kuht.it - http://www.kuht.it // // spark at kuht dot it // // // // Adaptation for XOOPS 2.0x by Herko (me at herkocoomans dot net) and // // Dawilby (willemsen1 at chello dot nl) // //---------------------------------------------------------------------------// include_once(XOOPS_ROOT_PATH.'/class/xoopsstory.php'); include_once(XOOPS_ROOT_PATH.'/class/module.textsanitizer.php'); function b_head_kuht_show($options) { global $xoopsDB, $xoopsConfig; $myts =& MyTextSanitizer::getInstance(); $fhometext = ""; $block = array(); $block['title'] = _MB_KUHT_TITLE_SPOTLIGHT; $tdate = mktime(0,0,0,date("n"),date("j"),date("Y"));
$var = $xoopsDB->query("SELECT news, auto, image, auto_image FROM ".$xoopsDB->prefix("spotlight")."",1,0); list ($number, $auto, $image, $auto_image) = $xoopsDB->fetchRow($var); if ($auto == 0) { // no auto selection $result = $xoopsDB->query("SELECT storyid, uid, title, hometext, comments, topicid FROM ".$xoopsDB->prefix("stories")." WHERE storyid=".$number." ",1,0); } else { // auto selection $result = $xoopsDB->query("SELECT storyid, uid, title, hometext, comments, topicid FROM ".$xoopsDB->prefix("stories")." WHERE published < ".time()." AND published > 0 AND (expired = 0 OR expired > ".time().") ORDER BY published DESC",1,0); } list ($fsid, $fautore, $ftitle, $fhometext, $fcomments, $ftopicid) = $xoopsDB->fetchRow($result); $result2 = $xoopsDB->query("SELECT uname, uid FROM ".$xoopsDB->prefix("users")." WHERE uid=".$fautore."",1,0); list ($fautorevero, $uidutente) = $xoopsDB->fetchRow($result2);
if (!$fsid && !$ftitle) { $block['message'] = _MB_KUHT_NOTSELECT; } else { if ($auto_image == 0) { $block['image'] = $image; } else { $var_image = $xoopsDB->query("SELECT topicid FROM ".$xoopsDB->prefix("stories")." WHERE topicid=".$ftopicid."",1,0); list ($patt_image) = $xoopsDB->fetchRow($var_image); $block['url_display'] = $patt_image;
$var_image2 = $xoopsDB->query("SELECT topic_imgurl FROM ".$xoopsDB->prefix("topics")." WHERE topic_id=".$patt_image."",1,0); list ($image_display) = $xoopsDB->fetchRow($var_image2); $block['image_display'] = $image_display; } if (!XOOPS_USE_MULTIBYTES) { if (strlen($ftitle) >= $options[0]) { $ftitle = substr($ftitle,0,($options[0] -1))."..."; } } $block['title'] = $myts->makeTboxData4Show($ftitle); $block['uid'] = $myts->makeTboxData4Show($uidutente); $block['author'] = $myts->makeTboxData4Show($fautorevero); $block['hometext'] = $myts->xoopsCodeDecode($fhometext); // BB Codes $block['hometext'] = $myts->nl2Br($block['hometext']); $block['storyid'] = $myts->makeTboxData4Show($fsid); $block['comments'] = $myts->makeTboxData4Show($fcomments); } $nsql = "SELECT storyid, title, published, expired, counter FROM ".$xoopsDB->prefix("stories")." WHERE published < ".time()." AND published > 0 AND (expired = 0 OR expired > ".time().") AND storyid != ".$fsid." ORDER BY published DESC"; $nresult = $xoopsDB->query($nsql,$options[2],0); while ( $myrow = $xoopsDB->fetchArray($nresult) ) { $news = array(); $title = $myts->makeTboxData4Show($myrow["title"]); if ( !XOOPS_USE_MULTIBYTES ) { if (strlen($myrow['title']) >= $options[3]) { $title = $myts->makeTboxData4Show(substr($myrow['title'],0,($options[3] -1)))."..."; } } $news['title'] = $title; $news['id'] = $myrow['storyid']; if ($options[1] == "published") { $news['hitsordate'] = formatTimestamp($myrow['published'],"s"); } elseif ($options[1] == "counter") { $news['hitsordate'] = $myrow['counter']; } $block['stories'][] = $news; } if ($options[4] == 1) { // rb topic select form for news direct topic access $topic_options = ''; $block['topicsel'] = ''; $sql = "SELECT topic_id, topic_title FROM ".$xoopsDB->prefix("topics")." order by topic_title ASC "; if (!$r = $xoopsDB->query($sql)){ exit(); } if ($row = $xoopsDB->fetchArray($r)) { do { $id= $row['topic_id']; $title =$myts->makeTboxData4Show($row['topic_title']); if (!XOOPS_USE_MULTIBYTES ) { if (strlen($title) >= 20) { $title = substr($title,0,19)."..."; } } $topic_options .= ''; } while($row = $xoopsDB->fetchArray($r)); } if ($topic_options <> '') { $block['topicsel'] = ''; } // END rb topic select form for news direct topic access } return $block; }
What upsets me, are those destructive messages - something like XOOPS will die, you people suck, this and that developer suck, XOOPS has no future.
These messages belong to a few people only. The only way these messages could become destructive is when they are selffulfilling prophecies. That would require a large amount of people thinking this way within the XOOPS community. That would not be logical: if there would be a substantial amount of people who think this way most would leave the community.
The Contact Us Module does not have a configuration interface as it usually is an install-and-forget-module: it just works.
As this is not a question a beginner can answer, I recommend you do the following:
1) find out if the problem is the Contact Us Module: do something else that generates an e-mail to check if it is somewhere between XOOPS, your server or your e-mail program. Subscribe a new member or use "Lost Pasword?". Alternatively, you could install the Liaise Module first (requires XOOPS 2.7.3 or newer).
2) Go to Administration Menu > System configuration > Preferences > General Settings
3) Switch ON the debug mode. (Normally, this should be switched off!)
4) Go to your contact form and just fill it in. Copy past all error messages and record the place were they were made.