Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] - Jeden warunek, ale dwie instrukcje
dadi
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Witam (IMG:style_emoticons/default/smile.gif)

Rozpocznę od małego wprowadzenia, aby łatwiej było się Wam wczuć. Od jakiegoś czasu zabieram się za programowanie stron WWW. Strony zazwyczaj opierałem o Wordpressa, z którego kopiowałem jedynie system newsów i panele (IMG:style_emoticons/default/smile.gif) Zazwyczaj newsy robiłem pionowo, więc dlaczego teraz nie zrobić strony o poziomym systemie newsów? (Chodzi o to: https://fbcdn-sphotos-f-a.akamaihd.net/hpho...992973850_o.jpg ). W czystym HTMLu nie był to problem. Stworzyłem diva, w którym umieściłem 3 divy z wyrównaniem do lewej i wszystko grało jak należy tak jak sobie wyobrażałem. Ale trzeba to jeszcze na PHP przerzucić (IMG:style_emoticons/default/smile.gif)

  1. <div class="news"> / Tabela główna, w której mają znajdować się dwa newsy
  2. <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> /najprawdopodobniej tutaj jest zawarta ilość newsów na jednej stronie, a także pętla zajmująca się kopiowaniem newsów w tym przypadku do trzech.
  3. <div class="onenews"> /div do newsa. Powtarza go trzykrotnie i gdyby był zamykany wszystko ładnie by grało
  4. <a href='<?php the_permalink(); ?>'><?php the_title(); ?></a> /tytuł
  5.  
  6. <?php if ( is_single() OR is_page() ) : ?> /warunek, który powinien być spełniony
  7. <?php the_content();?> </div> /instrukcja, która powinna być spełniona i jest ona wykonywana poprawnie
  8.  
  9. /RESZTA KODU
  10. <?php else : ?>
  11. <?php the_excerpt(); ?>
  12. <?php endif; ?>
  13. <?php endwhile; else: ?>
  14. <p>Brak wpisów spełniających kryteria</p>
  15. <?php endif; ?>
  16. </div>
  17.  

Tekst pogrubiony zawiera kod, który chciałem przerobić. Próbowałem różnymi sposobami, jako iż nie znam w ogóle PHP wklepywałem byle co(np. echo). Nie udawało się niestety i zawitałem tutaj. Czy jest możliwość, aby ten warunek jakaś dobroduszna osoba przerobiła ja warunek, który by wykonał instrukcję i do tego wykonał drugą zamykającą tabelę(</div>). Chodzi o to, żeby kolor niebieski jakoś włożyć do tej instrukcji.

Jak jest: http://cs-zst.keed.pl/
Zamierzony efekt: http://cs-zst.keed.pl/wp-content/themes/cszst/index2.html

Stylu nie oceniajcie(tzn. obramowania:D).

Pozdrawiam
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Z syntax errora, do gotowej strony? No to się nadaje do giełdy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
dadi
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Teraz już działa jak należy (IMG:style_emoticons/default/wink.gif) Znowu bawiłem się w tym kodzie. Postanowiłem wywalić warunek i sama instrukcja została, ale i tak nie działa ;/
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Nic z tego nie rozumiem. Jeśli zrobiłeś poprawnie w HTML, to PHP tu nie ma nic wspólnego.
Jeśli wyświetla się treść, czyli rozumiem to "the_content();", to czemu nie ma się wyświetlać </div> za tym?
Go to the top of the page
+Quote Post
com
post
Post #5





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Autorowi chodzi o to że efekt ma taki:
Kod
<div class="news">                    
                                                        
                    <div class="onenews">                        
                        <a href='http://cs-zst.keed.pl/?p=12'>xxxxxxxxxxx</a>
                                                        
                            <p>Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem próbnej książki. Pięć wieków później zaczął być używany przemyśle elektronicznym, pozostając praktycznie niezmienionym. Spopularyzował się w latach 60. XX w. wraz z publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, a ostatnio [&hellip;]</p>
                        
                                                        
                                                                
                    <div class="onenews">                        
                        <a href='http://cs-zst.keed.pl/?p=10'>xxxxxxxxxx</a>
                                                        
                            <p>Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem próbnej książki. Pięć wieków później zaczął być używany przemyśle elektronicznym, pozostając praktycznie niezmienionym. Spopularyzował się w latach 60. XX w. wraz z publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, a ostatnio [&hellip;]</p>
                        
                                                        
                                                                
                    <div class="onenews">                        
                        <a href='http://cs-zst.keed.pl/?p=8'>xxxxx</a>
                                                        
                            <p>Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem próbnej książki. Pięć wieków później zaczął być używany przemyśle elektronicznym, pozostając praktycznie niezmienionym. Spopularyzował się w latach 60. XX w. wraz z publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, a ostatnio [&hellip;]</p>
                        
                                                        
                                
                </div>


wiec problem leży w samej funkcji nie w tym kodzie co podał (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
dadi
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Nie wiem. Kod wygląda jak poniżej i nie wyświetla mi </div>. Jak dam go za if to samo. Jedynie jak dam za tytuł działa. Wydaję mi się, że chodzi o to, że po wykonaniu instrukcji (the_content) czyli treści przechodzi po prostu do wykonania kolejnej pętli (IMG:style_emoticons/default/wink.gif) . Albo po prostu instrukcja if wykonuje tylko jedną operację.

  1. <?php if ( is_single() OR is_page() ) : ?>
  2. <?php the_content();?> </div>


EDIT:
Właśnie tak. Mimo, że dam </div> za tą funkcję po każdej treści nie zostanie uwzględnione (IMG:style_emoticons/default/smile.gif)

Ten post edytował dadi 1.12.2013, 00:21:35
Go to the top of the page
+Quote Post
Damonsson
post
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Jak zrobisz tak, to pokazuje?

  1. <?php if ( is_single() OR is_page() ) : ?>
  2. </div>
  3. <?php the_content();?>


Ten post edytował Damonsson 1.12.2013, 00:25:30
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Jedyne co mi przychodzi na myśl to:
  1. <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> /najprawdopodobniej tutaj jest zawarta ilość newsów na jednej stronie, a także pętla zajmująca się kopiowaniem newsów w tym przypadku do trzech.
  2.  
  3. <div class="onenews"> /div do newsa. Powtarza go trzykrotnie i gdyby był zamykany wszystko ładnie by grało
  4.  
  5. <a href='<?php the_permalink(); ?>'><?php the_title(); ?></a> /tytuł
  6.  
  7. <?php if ( is_single() OR is_page() ) : ?> /warunek, który powinien być spełniony
  8.  
  9. <?php the_content();?>
  10. </div> /instrukcja, która powinna być spełniona i jest ona wykonywana poprawnie
  11.  
  12. <?php else : ?>
  13.  
  14. <?php the_excerpt(); ?>
  15.  
  16. </div>
  17. <?php endif; ?>
  18.  
  19. <?php endwhile; else: ?>
Go to the top of the page
+Quote Post
dadi
post
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Dziękuje bardzo Tobie za pomoc! (IMG:style_emoticons/default/smile.gif)
  1. <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  2. <div class="onenews">
  3. <a href='<?php the_permalink(); ?>'><?php the_title(); ?></a>
  4. <?php if ( is_single() OR is_page() ) : ?>
  5. <?php the_content();?>
  6. <?php else : ?>
  7. <?php the_excerpt(); ?>
  8. <?php endif; ?> </div>
  9. <?php endwhile; else: ?>
  10. <p>Brak wpisów spełniających kryteria</p>
  11. <?php endif; ?>

Wstawiłem to za wszystko co się tyczy IFa, ale wstawiłem przed końcem pętli i działa. Jeszcze raz dzięki! (IMG:style_emoticons/default/tongue.gif)

Co do twojego ostatniego postu to nie ma sensu, bo zakończy się tabela przed treścią (IMG:style_emoticons/default/smile.gif)

Ten post edytował dadi 1.12.2013, 00:31:12
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


up wiem pomyliłem linie, miało być o jedna dalej (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #11





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ma sens, bo jeśli </div> się pojawi, to dojdziesz do wniosku, że błąd powoduje funkcja the_content();

Go to the top of the page
+Quote Post
com
post
Post #12





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


wgl wychodzi na to że to nie ona zwraca te rekordy (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #13





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Jeśli to wordpress, to ona robi tylko echo ( http://core.trac.wordpress.org/browser/tag...mplate.php#L164 ), więc autor coś kręci (IMG:style_emoticons/default/wink.gif)

Ten post edytował Damonsson 1.12.2013, 00:42:44
Go to the top of the page
+Quote Post
dadi
post
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Nie wiem o co chodzi, ale cieszę się, że działa:D
Go to the top of the page
+Quote Post
Damonsson
post
Post #15





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


a już tak z czystej ciekawości, zrób CTRL + F w projekcie i wklej tutaj funkcję the_content().
Go to the top of the page
+Quote Post
dadi
post
Post #16





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


  1. function the_content( $more_link_text = null, $strip_teaser = false) {
  2. $content = get_the_content( $more_link_text, $strip_teaser );
  3. $content = apply_filters( 'the_content', $content );
  4. $content = str_replace( ']]>', ']]&gt;', $content );
  5. echo $content;
  6. }

Chyba o to chodzi. Mi się po prostu wydaję, że funkcja if, jeżeli funkcja jest prawdziwa może przeprowadzić tylko i wyłącznie jedną instrukcję, czyli w tym przypadku the_content, a jako iż funkcja if nie została jeszcze skończona to nie można wprowadzać tam kolejnych instrukcji. I dlatego postanowiłem to wrzucić za endif (IMG:style_emoticons/default/smile.gif)

PS: W szkole nauczyciel tłumaczył, kiedy programowaliśmy pliki wsadowe, że do standardowej wersji if można tylko jedną instrukcję przypisać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
com
post
Post #17





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


tak bo prawdopodobnie wywołuje funkcje the_excerpt() (IMG:style_emoticons/default/wink.gif)

http://ideone.com/iMhT7H
Przykład... Ciekawostki tu opowiadasz, a w plikach wsadowych if wrzucasz w blok np tak
Kod
if %%f NEQ %1 (
echo aa
dir .
)


a php to nie pliki wsadowe (IMG:style_emoticons/default/smile.gif)

http://php.net/manual/en/control-structures.elseif.php (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #18





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No teraz to ja rozumiem, więc skłamałeś pisząc

Cytat
Co do twojego ostatniego postu to nie ma sensu, bo zakończy się tabela przed treścią


nic się nie zakończy, bo if nie jest spełnione.


Albo i nie, nie wiem bo już sam się zakręciłem (IMG:style_emoticons/default/biggrin.gif) Kto wymyślił wordpressa...na stos z nim.

Ten post edytował Damonsson 1.12.2013, 01:04:31
Go to the top of the page
+Quote Post
com
post
Post #19





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


Damonsson jeśli autor pozwoli to zrobimy test i spr który tak naprawdę wywołuje... ale wydaje mi się że jest tak jak napisałem (IMG:style_emoticons/default/tongue.gif) Tylko autor nie wiedział że wywołuje nie te funkcje (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #20





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No właśnie chciałem to sprawdzić na samym początku, stąd prosiłem, żeby dodał </div> przed the_content(). Ale nie chciał i już sam się pogubiłem w tym wszystkim, więc, ważne, że działa (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
com
post
Post #21





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


ano, ale z tego można wywnioskować że cześć tych funkcji jest bez sensu.. (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
dadi
post
Post #22





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2013

Ostrzeżenie: (0%)
-----


Jak wrzuciłem przed the_content() to kończyło tabelę przed treścią.

Po 1: Sam się pogubiłem w tym co pisałem w tym temacie:D
Po 2: Myślałem, że pokrewieństwo jest w tym jakieś. W szkole jak pisaliśmy if to pod tym dawaliśmy instrukcję i gra gitara
Po 3: Nie znam się na PHP i dlatego tu jestem:P
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.09.2025 - 03:36