Cześć.
Należy trochę zmodyfikować plik w ścieżce "
components/com_content/" o nazwie "
content.html.php". Zacznijmy od funkcji
ReadMore ():
Modyfikacja funkcji
ReadMore () dla wersji
Joomla 1.0.7, być może 1.0.8 ( trzeba to po prostu sprawdzić w kodzie, są drobne różnice ):
Oryginalny kod dla
Joomla 1.0.7, gdzieś około linii
823:
Kod 1.a:Kod: |
* Writes Readmore Button
*/
function ReadMore ( $params, $link_on, $link_text ) {
if ( $params->get( 'readmore' ) ) {
if ( $params->get( 'intro_only' ) && $link_text ) {
?>
<tr>
<td align="left" colspan="2">
<a href="<?php echo $link_on;?>" class="readon<?php echo $params->get( '
pageclass_sfx' ); ?>">
<?php echo $link_text;?>
</a>
</td>
</tr>
<?php
}
}
}
|
...zamieniamy na poniższy:
Kod 1.b:
Kod: |
* Writes Readmore Button
*/
function ReadMore ( $params, $link_on, $link_text ) {
if ( $params->get( 'readmore' ) ) {
if ( $params->get( 'intro_only' ) && $link_text ) {
?>
<a href="<?php echo $link_on;?>" class="readon<?php echo $params->get( '
pageclass_sfx' ); ?>">
<?php echo $link_text;?>
</a>
<?php
}
}
}
|
...czyli pozbywamy się komórki
<td> z tabeli.
To samo robimy dla nowszych wersji Joomla:
Modyfikacja funkcji
ReadMore () dla wersji
Joomla 1.0.11 w pliku "
content.html.php":
Oryginalny kod
Joomla 1.0.11, gdzieś około linii
876:
Kod 2.a:
Kod: |
* Writes Readmore Button
*/
function ReadMore ( &$row, &$params ) {
if ( $params->get( 'readmore' ) ) {
if ( $params->get( 'intro_only' ) && $row->link_text ) {
?>
<tr>
<td align="left" colspan="2">
<a href="<?php echo $row->link_on;?>" class="readon<?php echo $params->get(
'pageclass_sfx' ); ?>">
<?php echo $row->link_text;?></a>
</td>
</tr>
<?php
}
}
}
|
...zamieniamy na poniższy:
Kod 2.b:
Kod: |
* Writes Readmore Button
*/
function ReadMore ( &$row, &$params ) {
if ( $params->get( 'readmore' ) ) {
if ( $params->get( 'intro_only' ) && $row->link_text ) {
?>
<a href="<?php echo $row->link_on;?>" class="readon<?php echo $params-
>get( 'pageclass_sfx' ); ?>">
<?php echo $row->link_text;?></a>
<?php
}
}
}
|
Mamy funkcję
ReadMore () zmodyfikowaną. Teraz należy zmienić kod w innym miejscu pliku "
content.html.php".
Modyfikacja kodu odpowiedzialnego za miejsce pokazanie się linka "
Czytaj całość...". Dla wersji
Joomla 1.0.7 w pliku w pliku "
content.html.php"
Oryginalny kod dla
Joomla 1.0.7, gdzieś około linii
521:
Kod 1.c:
Kod: |
// displays Item Text
echo ampReplace( $row->text );
?>
</td>
</tr>
<?php
// displays Modified Date
HTML_content::ModifiedDate( $row, $params );
// displays Readmore button
HTML_content::ReadMore( $params, $link_on, $link_text );
?>
|
...zamieniamy na poniższy kod.
Kod 1.d:
Kod: |
// displays Item Text
echo ampReplace( $row->text );
// displays Readmore button
HTML_content::ReadMore( $params, $link_on, $link_text );
?>
</td>
</tr>
<?php
// displays Modified Date
HTML_content::ModifiedDate( $row, $params );
// displays Readmore button
//HTML_content::ReadMore( $params, $link_on, $link_text );
?>
|
...i w ten oto sposób umieściliśmy "
Czytaj całość..." tuż za treścią wprowadzenia do artykułu, w jednej komórce tabeli
<td>. To samo robimy dla wersji
Joomla.1.0.11 w pliku "
content.html.php".
Oryginalny kod dla
Joomla.1.0.11, gdzieś około linii
518:
Kod 2.c:
Kod: |
// displays Item Text
echo ampReplace( $row->text );
?>
</td>
</tr>
<?php
// displays Modified Date
HTML_content::ModifiedDate( $row, $params );
// displays Readmore button
HTML_content::ReadMore( $row, $params );
?>
|
...zamieniamy na poniższy kod.
Kod 2.d:
Kod: |
// displays Item Text
echo ampReplace( $row->text );
// displays Readmore button
HTML_content::ReadMore( $row, $params );
?>
</td>
</tr>
<?php
// displays Modified Date
HTML_content::ModifiedDate( $row, $params );
// displays Readmore button
//HTML_content::ReadMore( $row, $params );
?>
|
...i jak wyżej, umieściliśmy "
Czytaj całość..." tuż za treścią wprowadzenia do artykułu, w jednej komórce tabeli
<td>.
Działanie kodu sprawdziłem na swojej stronie, czyli
Joomla 1.0.7, jak i na
Joomla.1.0.11, oraz
Joomla 1.0.13 ( kodowanie znaków nie ma żadnego znaczenia ). Tekst "
Czytaj całość..." jest tekstem pobranym z pliku języka, i może mieć treść dowolną. U mnie jest np. "
Więcej...". To już kwestia gustu. Możemy tą treść zmienić w pliku "
polish.php" w katalogu "
language".
Kod: |
/** content */
DEFINE('_READ_MORE','Więcej…');
|
To tyle. Oczywiście, przed modyfikacją należy wykonać kopię pliku "
content.html.php", bo należy to robić
ZAWSZE. Jeszcze drobna uwaga. Jeśli tekst wprowadzający będzie zakończony znacznikiem
<br />, a często tak się zdarza, tekst "
Czytaj całość..." zostanie opuszczony niżej, przełamany, czyli tak jakbyśmy nie robili żadnej modyfikacji. Dodatkowo jeśli treść umieścimy w znacznikach
<div> lub
<p> to także zostanie przełamany. Więc należy oczyścić kod "
introtextu" ( tekstu wprowadzającego ) ze znacznika
<br />, najlepiej edytując kod
HTML treści w edytorze. Każdy edytor posiada taki przycisk. Nazywa się "
html", i jest podpowiedziany ( w dymku ) często jako "
edytuj źródło" lub podobnie. Dodatkowo jeśli chcemy, aby treść w
<div> nie łamała nam "
Czytaj całość..." możemy do treści na początku wstawić taki kod:
Kod: |
<div align="left" style="display: inline;">..tresc...</div>
|
To tyle. Zaznaczam, że każdy robi te modyfikacje na własną odpowiedzialność. U mnie na stronie głównej widać efekt zastosowania modyfikacji. Wprawdzie jeszcze nie wszystkie artykuły poprawiłem, ale część już jest dobra. Pomyślę jeszcze nad tym, jak to usprawnić.
Pozdrawiam.
Jokris.