עוד ווידג'טים של טקסט

כולנו מכירים את הווידג'טים של טקסט, אני לפחות יכולה להעיד שהם הווידג'טים שהכי הרבה בשימוש אצלי.
וכשהמצב נראה כך:
text widgets
הגבול של 9 ווידג'טים מרגיש מעט קרוב מידי.
אז איך משנים את המצב ?
מעט עריכת קוד והכל נעשה הרבה יותר נעים :-)

הקוד של הווידג'טים יושב בקובץ wp-include/widgets.php
הפונקציה הראשונה לשינוי היא wp_widget_text_setup הנמצאת בשורה 566 של הקובץ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function wp_widget_text_setup() {
    $options = $newoptions = get_option('widget_text');
    if ( isset($_POST['text-number-submit']) ) {
        $number = (int) $_POST['text-number'];
        if ( $number > 9 ) $number = 9;
        if ( $number < 1 ) $number = 1;
        $newoptions['number'] = $number;
    }
    if ( $options != $newoptions ) {
        $options = $newoptions;
        update_option('widget_text', $options);
        wp_widget_text_register($options['number']);
    }
}

נשנה את המספר 9 למספר הרצוי (נניח 20).
ונקבל את הקוד הבא:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function wp_widget_text_setup() {
    $options = $newoptions = get_option('widget_text');
    if ( isset($_POST['text-number-submit']) ) {
        $number = (int) $_POST['text-number'];
        if ( $number > 20 ) $number =20;
        if ( $number < 1 ) $number = 1;
        $newoptions['number'] = $number;
    }
    if ( $options != $newoptions ) {
        $options = $newoptions;
        update_option('widget_text', $options);
        wp_widget_text_register($options['number']);
    }
}

הפונקציה הבאה לטיפול היא wp_widget_text_page הנמצאת בשורה 581.
נשנה את המספר 10 ל-21.

1
2
3
4
5
6
7
8
9
function wp_widget_text_page() {
    $options = $newoptions = get_option('widget_text');
?>
    <div class="wrap">
        <form method="POST">
            <h2><?php _e('Text Widgets'); ?></h2>
            <p style="line-height: 30px;"><?php _e('How many text widgets would you like?'); ?>
            <select id="text-number" name="text-number" value="<?php echo $options['number']; ?>">
<?php for ( $i = 1; $i < 10; ++$i )

לאחר השינוי קיבלנו:

1
2
3
4
5
6
7
8
9
function wp_widget_text_page() {
    $options = $newoptions = get_option('widget_text');
?>
    <div class="wrap">
        <form method="POST">
            <h2><?php _e('Text Widgets'); ?></h2>
            <p style="line-height: 30px;"><?php _e('How many text widgets would you like?'); ?>
            <select id="text-number" name="text-number" value="<?php echo $options['number']; ?>">
<?php for ( $i = 1; $i < 21; ++$i )

נעבור לפונקציה האחרונה wp_widget_text_register הנמצאת בשורה 597.
גם כאן נשנה שוב את המספר 9 ל-20.

1
2
3
4
5
6
7
8
function wp_widget_text_register() {
    $options = get_option('widget_text');
    $number = $options['number'];
    if ( $number < 1 ) $number = 1;
    if ( $number > 9 ) $number = 9;
    $dims = array('width' => 460, 'height' => 350);
    $class = array('classname' => 'widget_text');
    for ($i = 1; $i <= 9; $i++) {

ולאחר השינוי

1
2
3
4
5
6
7
8
function wp_widget_text_register() {
    $options = get_option('widget_text');
    $number = $options['number'];
    if ( $number < 1 ) $number = 1;
    if ( $number > 9 ) $number = 20;
    $dims = array('width' => 460, 'height' => 350);
    $class = array('classname' => 'widget_text');
    for ($i = 1; $i <= 20; $i++) {

פשוט פשוט פשוט.
מה שכן – תשמרו גיבוי של הקובץ לפני תחילת העריכה, רק ליתר בטחון.
והעיקר – לא לפחד כלל.

025 עוד ווידגטים של טקסט נהניתם ? הרשמו לעדכוני RSS !

ווידג'טים, כן או לא ?

אני מנהלת דיון מעניין עם מרים וראיין באחד הפוסטים ב-wordpressgarage על נושא השימוש בווידג'טים.

וכיוון שהדיון ההוא מתנהל באנגלית רציתי לחשוף אתכם לנושא (אם תרצו באנגלית) ואולי אף לערוך אותו כאן בעברית.

הנקודה העיקרית עליה אנחנו מתדיינים היא השימוש בווידג'טים.
בעוד שמרים וראיין מחזיקים בדעה שעדיף בלעדיים אני דווקא תומכת נלהבת. הסיבות ביחידות שאני מוצאת לוותר על ווידג'טים הן:
1. בעיות ביצועים קשות – ואז יש עוד כמה סיבות כנראה לפני ווידג'טים.
2. תבנית שאינה תומכת בווידגטים – וזה למיטב הבנתי ניתן לתיקון כמעט בכל התבניות (עד כה נכשלתי רק באחת).

לעומת הסיבות לויתור הסיבות לשימוש בווידג'טים לטעמי הן גדולות, הדיון כמובן מתבצע מנקודת המבט שלי של מרים ושל ראיין – כלומר מתכנתים, בעלי נסיון בוורדפרס המבצעים עבודות וורדפרס עבור לקוחות שונים.

הנקודה החשובה ביותר לטעמי בשימוש בווידג'טים (כפי שגם כתבתי אצל מרים) היא דווקא בנוגע ללקוחות. הגישה הכוללת שלי היא לתת ללקוח חופש ככל הניתן, ברור לי שגישה זו אינה כלכלית בהכרח אבל אני מאמינה שבסופו של דבר אם אעשה עבודה טובה הלקוח יחזור אלי בפעם הבאה.
אני לא רוצה לכבול אותו אליי בכח, לא עלי ידי החזקת האחסון שלו ולא על ידי הטמעת קוד סטאטי בתוך התבנית.
ווידג'טים מאפשרים לאנשים בעלי פחות נסיון בוורדפרס וחסרי ידע בתכנות את היכולת המינימלית לשלוט בתוכן הסרגל הצדדי ובסדר המרכיבים בו. זו יכולת שלטעמי היא קריטית.

הסיבה השניה בשלה אני מצדדת בווידג'טים היא כבר פשוטה יותר וקשורה לסיבה בגללה אני מצדדת בתוספים ככלל, מישהו כבר כתב את הקוד ודיבג אותו. נכון, אני מתכנתת, ועל כן האגו שלי טוען שאני יכולה לעשות זאת יותר טוב (כי ככה זה מתכנתים), אבל למעשה כמנהלת פרוייקטים אני יודעת שאם מישהו אחר עשה את העבודה ומתחזק את הקוד, הוא חוסך לי זמן עבודה שלי ואף כסף ללקוחות (כי על התקנה אני מן הסתם גובה פחות).
אני לא רואה סיבה להמציא את הגלגל מחדש. אם אין את מה שאני צריכה אני כותבת תוסף חדש ומשחררת לעולם, אם יש אני משתמשת בו.

להכניס קוד לתבנית עצמה זו בעיני טעות גדולה יותר אפילו, כל הרעיון של הפרדת עיצוב ופונקציונליות אובד כאן. כאשר הלקוח ירצה להחליף תבנית הוא יצטרך לעבור לא רק דרך מעצב אלא גם דרך מתכנת ממש שיעביר לו את הקוד מתבנית אחת לאחרת. אומנם תבניות וורדפרס משתמשות ב-PHP כבסיס, אבל מעצב ווב מוכשר יקח תבנית הדומה לזו הרצויה לו וישנה את כל ה-CSS שלה ללא צורך לגעת בקוד. לא תמיד הוא יוכל לעשות זאת על בסיס התבנית הקיימת.

מה דעתכם? האם אתם משתמשים בווידג'טים? בתוספים? ובכלל מה הייתם מעדיפים בתור לקוחות?

025 ווידג’טים, כן או לא ? נהניתם ? הרשמו לעדכוני RSS !