webForumDet fria alternativet

Får inte rätt på listan (blir dubbla).

HTML & CSS

8 svar · 798 visningar · startad av xtreme

Medlem sedan juli 20002 056 inlägg
Frågan#1

Använder Wordpress och ett plugins "Most Read in XX Days". Problemet är att listan ser konstig ut, blir två kolumner och där det inte får plats på en rad skriver det över texten på raden under.

Vill helt enkelt det ska se ut såhär:

  • aaaaaaaaaaaaaaa
  • bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
  • ccccccccccc
  • gggggggg
  • hhhhhhhhhhhhhh
    hhhhhhhhh

Tror problemet ligger i att tillägget har en lista och mitt template har en. Vill ramen ska ha samma design som Kategorier och Arkiv.

Problemet är under MEST LÄSTA NYHETERNA på http://undvikreklam.com/

Kod för min sidebar:

<div class="rsidebar">

<ul>

<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar() ) : else : ?>	

<?php wp_list_categories('show_count=0&title_li=<h2>Kategorier</h2>'); ?>

			<li><h2>Arkiv</h2>
				<ul>
				<?php wp_get_archives('type=monthly'); ?>
				</ul>
			</li>

	
				<!-- <?php wp_list_bookmarks(); ?> -->
	<li><h2>Mest lästa nyheterna</h2>
	<ul>		
	<?php ST4_mostread(30,5,'yes'); ?>
<?php endif; ?>
	</ul>
</li>	
		
                
</div>

Kod för tillägget (postar hela):

<?php
$currentLocale = get_locale();
if(!empty($currentLocale)) {
$moFile = dirname(__FILE__) . "/most-read-plugin/most_read-" . $currentLocale . ".mo";
if(@file_exists($moFile) && is_readable($moFile)) load_textdomain('most_read', $moFile);
}

function ST4_most_read_init_widgets(){
    if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
        return;
       
    function ST4_most_read_widget($args) {
        extract($args);
        $options = get_option('most_read_widget_options');
        $title = empty($options['title']) ? 'Most Read Posts' : $options['title'];
       	$quanti = empty($options['quanti']) ? '30' : $options['quanti'];
       	$limit = empty($options['limit']) ? '5' : $options['limit'];
       	$widget_show_hits = empty($options['widget_show_hits']) ? 'no' : $options['widget_show_hits'];       	
        echo $before_widget;
        echo $before_title . $title . $after_title;
        ST4_mostread($quanti,$limit,$widget_show_hits);
        echo $after_widget;
    }
    
    function ST4_most_read_widget_control() {
        $options = get_option('most_read_widget_options');

        if ( $_POST['mywidget-submit'] ) {
            $newoptions['title'] = strip_tags(stripslashes($_POST['mywidget-title']));
            $newoptions['quanti'] = strip_tags(stripslashes($_POST['mywidget-text']));
            $newoptions['limit'] = strip_tags(stripslashes($_POST['mywidget-limit']));
            $newoptions['widget_show_hits'] = strip_tags(stripslashes($_POST['mywidget-hits']));
            if ( $options !== $newoptions ) {
            	$options = $newoptions;
            	update_option('most_read_widget_options', $options);
        		}
        }
        $title = htmlspecialchars($options['title'], ENT_QUOTES);
        $quanti = htmlspecialchars($options['quanti'], ENT_QUOTES);
        $limit = htmlspecialchars($options['limit'], ENT_QUOTES);
        $widget_show_hits = htmlspecialchars($options['widget_show_hits'], ENT_QUOTES);
        
?>
        <div>
        <label for="mywidget-title" style="line-height:35px;display:block;"><?php _e('Title') ?>: <input style="width: 150px;" type="text" id="mywidget-title" name="mywidget-title" value="<?php echo $title; ?>" /></label>
        <label for="mywidget-text" style="line-height:35px;display:block;"><?php _e('Show most read posts in', 'most_read'); ?> <input type="text" id="mywidget-text" name="mywidget-text" style="width: 30px;" value="<?php echo $quanti; ?>" /> <?php _e('days', 'most_read'); ?></label>
        
        <label for="mywidget-limit" style="line-height:35px;display:block;"><?php _e('Show', 'most_read'); ?> <input type="text" id="mywidget-limit" name="mywidget-limit" style="width: 30px;" value="<?php echo $limit; ?>" /> <?php _e('posts in the sidebar', 'most_read'); ?></label>
        
        <label for="mywidget-hits" style="display:block;"><input type="checkbox" id="mywidget-hits" name="mywidget-hits" value="yes" <?php if ($widget_show_hits == 'yes'){ echo 'checked'; } ?> /> <?php _e('Show hits near title', 'most_read'); ?><br />
        (<?php _e('check this if you want to show hits near the post title in your sidebar', 'most_read'); ?>)</label>
        
        <input type="hidden" name="mywidget-submit" id="mywidget-submit" value="1" />
        </div>
    <?php
    }
    
    register_sidebar_widget('Most Read Posts', 'ST4_most_read_widget');
    register_widget_control('Most Read Posts', 'ST4_most_read_widget_control');
}

add_action('plugins_loaded', 'ST4_most_read_init_widgets');
    

function ST4_single_hits() {
	global $wpdb, $posts;
	$p_ID = $posts[0]->ID; 
	$actual_hits = $wpdb->get_var("SELECT hits FROM $wpdb->posthits WHERE post_ID='$p_ID'");
	if (!$actual_hits){
		$actual_hits = 0;
	}
	echo $actual_hits;
}

function ST4_hits(){
	global $wpdb, $post;
	$actual_hits = $wpdb->get_var("SELECT hits FROM $wpdb->posthits WHERE post_ID='$post->ID'");
	if (!$actual_hits){
		$actual_hits = 0;
	}
	echo $actual_hits;
}

function ST4_update_post(){
global $wpdb, $post;

if (is_single()){
	$p_ID = $post->ID;
	$mread_options = get_ST4_mostread_options();
	$cookie_secs = $mread_options[read_seconds];
	$cookie_label = 'ST4_read_post_'.$p_ID.'_ID';	
	if(!$_COOKIE[$cookie_label]) {
		$actual_hits = $wpdb->get_var("SELECT hits FROM $wpdb->posthits WHERE post_ID='$p_ID'");
		if (!$actual_hits){
			$add = $wpdb->query("INSERT INTO $wpdb->posthits (post_ID, hits) VALUES ('$p_ID','1')");
		 	$n_hits = 1;
		}	else {
		 	$n_hits = $actual_hits + 1;
		 	$upd = $wpdb->query("UPDATE $wpdb->posthits SET hits = '$n_hits' WHERE post_ID = '$p_ID'");
		}
		setcookie($cookie_label, 1, time() + $cookie_secs, COOKIEPATH, COOKIE_DOMAIN);
		}
	}
}

function ST4_mostread($last_days, $quanti='5', $widget_show_hits='yes'){
global $wpdb;
$sql = "SELECT p.post_title, p.post_date, st.post_ID, st.hits as cnt 
      FROM $wpdb->posthits st, $wpdb->posts p 
      WHERE p.ID = st.post_ID AND p.post_status = 'publish'
      AND DATE_SUB(CURDATE(),INTERVAL $last_days DAY) < p.post_date 
      GROUP BY st.post_ID ORDER BY cnt DESC LIMIT 0, $quanti";
        
$output = $wpdb->get_results($sql);

if ($output) {
	echo '<ul>';
  foreach ($output as $line) {
     $views = " (".($line->cnt).")";
     $t = str_replace("'","&apos;", $line->post_title);
     echo "<li><a title='". $t . $ttviews . "' href='" . get_permalink($line->post_ID) . "'>".($line->post_title)."</a> ";
     if ($widget_show_hits == 'yes') {	
     	echo $views;
     }
     echo "</li>";
   }
   echo '</ul>';
} else {
   echo '<ul><li>' . __('No results available', 'most_read') . '</li></ul>';
}
}

function ST4_install_most_read(){
   global $wpdb;

   $table_name = $wpdb->prefix . "most_read_hits";
   if($wpdb->get_var("show tables like '$table_name'") != $table_name) {

   $sql = "CREATE TABLE " . $table_name . " (
	      ID int(5) unsigned NOT NULL auto_increment,
	      post_ID int(5) NOT NULL default '0',
	      hits int(10) NOT NULL default '0',
	      PRIMARY KEY  (ID)
		);
		";
    require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
    dbDelta($sql);
   }
   
   	$most_read_options = array('read_seconds' => '172800');
		update_option('MostReadOptions', $most_read_options);
}

function strTime($s) {
  $d = intval($s/86400);
  $s -= $d*86400;
  $h = intval($s/3600);
  $s -= $h*3600;
  $m = intval($s/60);
  $s -= $m*60;
  if ($d) $str = $d;
  if ($h) $str .= $h;
  if ($m) $str .= $m;
  if ($s) $str .= $s;
  return $str;
}

function get_ST4_mostread_options() {
	global $most_read_options_name;
	$mread_options = get_option($most_read_options_name);
	return $mread_options;
}

function ST4_mostread_options(){
		global $most_read_options_name;
		$mread_options = get_ST4_mostread_options();
?>
<div class="wrap">
<h2><?php _e('Most Read Options', 'most_read'); ?></h2>

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>

<p><?php _e('To avoid multiple counts of the same post by the same user, the plugin uses a cookie to count only the first hit.', 'most_read'); ?></p>
<p><?php _e('Cookie expires in', 'most_read'); ?>: <input type="text" size="3" name="most_read_options" value="<?php echo strTime($mread_options['read_seconds']); ?>" /> <?php _e('days', 'most_read'); ?>. </p>

<input type="hidden" name="action" value="update_most_read_options" />

<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" />
</p>

</form>
</div>

<?php
}

function ST4_mostread_update_settings(){
	global $most_read_options_name, $wpdb;
  if($_POST['action'] == 'update_most_read_options'){
    $giorni = $wpdb->escape($_POST['most_read_options']);
    $seconds = $giorni * 86400;
    $most_read_options = array('read_seconds' => $seconds);
		update_option($most_read_options_name, $most_read_options);
    header('Location: '.get_bloginfo('wpurl').'/wp-admin/options-general.php?page=ST4_most_read.php&updated=true'); 
  }
}

function ST4_mostread_menu(){
   add_options_page(__('Most Read','most_read'), __('Most Read Options','most_read'), 8, basename(__FILE__), 'ST4_mostread_options');
}

add_action('template_redirect', 'ST4_update_post');
add_action('init', 'ST4_mostread_update_settings', 9999);
add_action('admin_menu', 'ST4_mostread_menu');
register_activation_hook( __FILE__, 'ST4_install_most_read' );
?>
Medlem sedan juni 20019 519 inlägg
#2
.rsidebar ul li ul li {style.css (rad 69)
background:transparent url(images/nav.gif) no-repeat scroll 0 0;
border:0 none;
float:left;
[b]height:24px;[/b]
list-style-type:none;
margin:0;
padding-left:4px;
[b]width:124px;[/b]
}

ta bort height och width om det är så du vill ha det:

xxx
yyy
zzz

eller om du vill ha det:
xxx yyy
zzz

så ta du bara bort height i din css.

Medlem sedan juli 20002 056 inlägg
#3

ta bort height och width

På alla ser det nu ut såhär (uppdaterat kategorier och arkiv så det syns bättre):

aaa bbbbbb
cccccc ddddd

Så vill jag ha det på de två översta (kategorier och arkiv) men på den nedersta (mest lästa nyheterna) vill jag ha det såhär eftersom dom meningarna kommer vara längre:

aaa
bbbbbbbb
ccccc
dddddddd

Med din ändring påverkar jag väl alla tre eftersom det görs i min .css? Kan jag få det som jag beskrev ovan?

Medlem sedan juni 20019 519 inlägg
#4

Du får sätta en klass för det, just nu är du för generell för nu skriver du att alla ul li skall vara floatat, vilket du inte vill.

Medlem sedan juli 20002 056 inlägg
#5

voigtann1 skrev:

Du får sätta en klass för det, just nu är du för generell för nu skriver du att alla ul li skall vara floatat, vilket du inte vill.

Får inte rätt på det, blir bara konstigt. Bifogar min .css ifall någon skulle vilja hjälpa mig med lite kod.

Medlem sedan juni 20019 519 inlägg
#6

de ul du har för float left osv så få du sätta klassen som parent är ju:

categories och och sätt en klass för lin för arkiv som har de css koder som du kör idag på.

Du vill inte ta bort li för dina "mest lästa" det var OK som du hade...

svårt att förklara med du har i princip:

<ul id="navigation">
	<li>
		<h3>Kategori</h3>
		<ul id="category">
			<li>Myter</li>
			<li>test</li>
		</ul>
	</li>
	<li>
		<h3>Arkiv</h3>
		<ul id="archive">
			<li>November</li>
			<li>December</li>
		</ul>
	</li>
	<li>
		<h3>Mest lästa</h3>
		<ul id="most-viewed">
			<li>Rubrik 1</li>
		</ul>
	</li>
</ul>

#navigation ul sätter du som färg (eftersom det skall vara samma färg osv på samtlgia ul,li)

Men på de du vill positionera xx yy
behöver du sätta float left osv som du har idag på: #navigation #category, #navigation #archive

medans på #most-viewed skall ha display block, osv.

Någon som kan förklara det bättre kommer förmodligen postar ;)

Medlem sedan juli 20002 056 inlägg
#7

Trodde att jag hade förstått det men tydligen inte. Flyttade "width:124px;height:24px;float:left;" till en ny som jag kallar rsidebarmod. Nu hamnar alla i en lång lista utan kolumner vilket är bra.

.rsidebar ul li ul li{list-style-type:none;border:0px none;margin:0;padding-left:4px;background:url('images/nav.gif') no-repeat;}
#rsidebarmod ul li ul li{width:124px;height:24px;float:left;}

Nu vill jag att Arkiv ska vara i kolumner som innan och sätter:

			<li><h2>Arkiv</h2>
				<ul id="rsidebarmod">
				<?php wp_get_archives('type=monthly'); ?>
				</ul>
			</li>

Men här händer ingenting. rsidebarmod gör ingen skillnad. Har ändrat på http://undvikreklam.com/ om ni vill se de felaktiga resultatet.

Medlem sedan juni 20019 519 inlägg
#8

glöm inte att sätta float left på #rsidebarmod li och #categories li (det är dessa två du vill ha som du har haft det tidigare).
du har gått något steg för mycket på ditt exempel ;)

gjorde en snabb "demo" hur det kan fungera:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<style type="text/css">
		<!--
        body {
            font-family:Verdana;
            font-size:11px;
            font-size-adjust:none;
            font-style:normal;
            font-variant:normal;
            font-weight:normal;
            line-height:normal;
        }

		#navbar 
		{
			width: 300px;
		}

		    #category li
		    {
			    float: left;
			    padding-right: 10px;
		    }

            #navbar h3 {
                border-bottom:1px dotted #B6B6B6;
                color:#000000;
                font-size:11px;
                margin:0;
                padding-bottom:4px;
                padding-top:12px;
                text-transform:uppercase;
            }

		    #navbar ul li
		    {
                border:1px solid #CCCCCC;
                float:left;
                list-style-type:none;
                margin:0 0 14px;
                padding:0 8px;
                width:272px;
		    }
	            #navbar ul li ul
	            {

                    padding: 0;
                    margin-left: 15px;
                    
	            }
		            #navbar ul li ul li 
		            {
			            border: 0;
			            padding: 0;
			            margin: 0;
                        list-style-type:square;
		            }
		            #navbar #category li, #navbar #archive li
		            {
                        padding-left:4px;
                        float: left;
                        width: auto;
                        padding-right: 26px;
		            }

		//-->
	</style>
</head>

<body>

<div id="navbar">
    <ul id="navigation">
	    <li>
		    <h3>Kategori</h3>
		    <ul id="category">
			    <li>Myter</li>
			    <li>test</li>
			    <li>Myter</li>
			    <li>test</li>
			    <li>Myter</li>
			    <li>test</li>
			    <li>Myter</li>
			    <li>test</li>
		    </ul>
	    </li>
	    <li>
		    <h3>Arkiv</h3>
		    <ul id="archive">
			    <li>November</li>
			    <li>December</li>
		    </ul>
	    </li>
	    <li>
		    <h3>Mest lästa</h3>
		    <ul id="most-viewed">
			    <li>Rubrik 1</li>
			    <li>Rubrik 2</li>
			    <li>Rubrik 3</li>
			    <li>Rubrik 4</li>
			    <li>Rubrik 5</li>
			    <li>Rubrik 6</li>
		    </ul>
	    </li>
    </ul>
</div>

</body>
</html>
Medlem sedan juli 20002 056 inlägg
#9

voigtann1 skrev:

gjorde en snabb "demo" hur det kan fungera:

Tackar jag så mycket för. Nu blev det som jag ville ha det.

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)