הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 25-04-12, 11:34   # 1
gillllll
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
הודעות: 363

gillllll לא מחובר  

שאלה | תיכנות וקידום אתרים לסלולר

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

ועכשיו לבעיות -
לפני כמה ימים החלטתי לבנות לאתר הרגיל שלי אתר מותאם לסלולר , בניתי אותו ב HTML5 .
עכשיו יש את האתר הרגיל ותת דומין m.domain.com שבנוי ב HTML5 .
הכל עובד ווב ויפה אבל אז התעוררה אצלי שאלה קידומית - האם זה שהתוכן של האתר משוכפל בגרסא הסלולרית שלו לא יפגע לי בקידום האתר.
הרצתי חיפוש ומה עדיף אם לא תשובה של גוגל בכבודם ובעצמם לסיפור הזה:
אז הנה התשובות -
http://www.youtube.com/watch?v=mY9h3G8Lv4k

ואני אסכם ואומר שבעיקרון הוא ממליץ שם להפנות את googlebot לגרסא של המחשב הנייח. ואת googlebot-mobile לגרסא הניידת. למי שלא יודע מדובר בשני העכבישים של גוגל לסריקת דפי האינטרנט של האתרים.

לאחר שתשמעו את כל כל הוידאו תוכלו להכנס גם לבלוג של גוגל שהם המליצו עליו -
http://googlewebmastercentral.blogsp...bile-site.html
שם רשום עוד משהו מעניין שהם לא ממליצים להפנות רק ל googlebot-mobile אלא ואני מצטט:
ציטוט:
If you'd like your site crawled, please allow any User-agent including "Googlebot-Mobile" to access your site. You should also be aware that Google may change its User-agent information at any time without notice, so it is not recommended that you check if the User-agent exactly matches "Googlebot-Mobile" (which is the string used at present). Instead, check whether the User-agent header contains the string "Googlebot-Mobile". You can also use DNS Lookups to verify Googlebot.
כלומר הם נותנים 2 אופציות או לחפש שהמחרוזת קיימת בהדר (איך עושים את זה?) או לעשות חיפוש DNS (וגם את זה איך עושים?).
__________________
- חייך הכל לטובה .
  Reply With Quote
ישן 25-04-12, 13:32   # 2
gillllll
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
הודעות: 363

gillllll לא מחובר  

טוב אז רציתי לדווח על קצת התקדמות בנושא ועכשיו עזרתכם נדרשת מתמיד...
לאחר עיון בנושא הזה: http://www.sitepoint.com/forums/show...ebsite-version
בו נשאלה שאלה דומה ואף נתנו 2 הצעות . (פירוט מלא תוכלו למצוא בדיון שנערך שם)
1. שינוי באמצעות .htaccess שיעביר באופן אוטומטי לאתר במידה והוא מזהה הדר של פלאפון.
הקוד שהוצע:
קוד:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r\ |s\ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1\ u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(\ i|ip)|hs\-c|ht(c(\-|\ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(\ |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(\ |\/)|klon|kpt\ |kwc\-|kyo(c|k)|le(no|xi)|lg(\ g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-|\ |o|v)|zz)|mt(50|p1|v\ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v\ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|\ )|webc|whit|wi(g\ |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-) [NC]
RewriteRule ^(.*)$ http://sub.domain.com/ [L,R=302]
הבעיות מבחינתי:לא ניתן לעבור בפלאפון לאתר הראשי (אני רוצה שאופציה תשאר), הבעיה השניה אני מעוניין שכאשר הגולש יכנס לדף פנימי למשל domain.com/?id=23 או domain.com/article.php?id=12 יותאם לו במידה והוא מגיע מפלאפון אותה כתובת רק עם הסאבדומיין לפלאפון דוגמא : m.domain.com/id?=12

2. הפעלת שאילתה והפניית HEADER בסופה.
הקוד שהוצע:
קוד:
if ($version != "desktop") {
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
header('Location: http://sub.domain.com');
}
השיטה הזו לפי הנאמר פתרה את הבעיה הראשונה על ידי שימוש ב GET שנשלח עם בקשה לאי כניסה לבדיקת הסלולר.
אך הבעיה השניה עדין בעינה בעיקר בגלל העובדה שאי אפשר לשלוח עד כמה שאני יודע בהפניית HEADER פרמטרים...

כמו כן , רציתי לשאול בנוגע לפתרון הזה האם יש דרך פתרונות המוצעים לבדוק אם זה הבוט של גוגל באותה שיטה וכך כפי שגוגל אמרו להפנות אליו אם כן מה לדעתכם עלי להכניס ... על פי המלצת גוגל שצירפתי בהתחלה ומפנה לציטוט בבלוג שלהם.
__________________
- חייך הכל לטובה .
  Reply With Quote
ישן 25-04-12, 14:39   # 3
gillllll
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
הודעות: 363

gillllll לא מחובר  

עוד התקדמות מגיעה מכיוון וורדפרס... או יותר נכון הפלאגינים של וורדפרס. שם הם עושים שימוש בתאמה לקידום אתרים בדפדפנים סלולרים.
בפלאגאין הזה לוורדפרס שמאפשר התאמה של הבלוג לסלולר בן היתר הוא גם מתמקד ב SEO והתאמה למנועי החיפוש...
זה הקישור לפלאג אין:
http://wordpress.org/extend/plugins/mobilepress/

שם תוכלו למצוא את קובץ check.php שיש בו מימוש של בדיקת מנועי חיפוש ובין היתר אולי גם פתרון לבעיה הראשונה והשניה עכשיו רק צריך לקחת הכל ולעשות סקריפט נורמלי עבור אתרים רגילים ולא של וורדפרס:
קוד:
<?php
if ( ! class_exists('MobilePress_check'))
{
	/**
	 * Class that does all the checks to determine if we are dealing with a Mobile browser
	 *
	 * @package MobilePress
	 * @since 1.0
	 */
	class MobilePress_check {
		
		/**
		 * Initialize the checking of the mobile browse
		 *
		 * @package MobilePress
		 * @since 1.0
		 */
		function init()
		{
			// Get the theme we need to render
			$this->theme = mopr_get_option('default_theme', 1);
			
			// If viewing the mobile website
			switch(TRUE)
			{	
				// ?mobile accesses the mobile version of the website
				case (isset($_GET['mobile'])):
					$browser	= "mobile";
					$activated	= TRUE;
					break;
					
				// If forcing iphone theme
				case (isset($_GET['iphone'])):
					$browser	= "iphone";
					$activated	= TRUE; 
					$theme		= mopr_get_option('iphone_theme',1);
					break;
				
				// ?nomobile renders the orignial website
				case (isset($_GET['nomobile'])):
					$activated	= FALSE;
					$theme		= '';
					break;
					
				// Apple/iPhone browser renders as mobile
				case (preg_match('/(apple|iphone|ipod)/i', $_SERVER['HTTP_USER_AGENT']) && preg_match('/mobile/i', $_SERVER['HTTP_USER_AGENT'])):
					$browser	= "iphone";
					$activated	= TRUE;
					$theme		= mopr_get_option('iphone_theme',1);
					break;
					
				// Other mobile browsers render as mobile
				case (preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])):
					$browser	= "mobile";
					$activated	= TRUE;
					break;
					
				// Wap browser
				case (((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'text/vnd.wap.wml') > 0) || (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0)) || ((isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])))):
					$activated = TRUE;
					break;
				
				// Shortend user agents
				case (in_array(strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,3)),array('lg '=>'lg ','lg-'=>'lg-','lg_'=>'lg_','lge'=>'lge'))); 
					$browser = "mobile";
					$activated = TRUE;
					break;
				
				// More shortend user agents
				case (in_array(strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)),array('acs-'=>'acs-','amoi'=>'amoi','doco'=>'doco','eric'=>'eric','huaw'=>'huaw','lct_'=>'lct_','leno'=>'leno','mobi'=>'mobi','mot-'=>'mot-','moto'=>'moto','nec-'=>'nec-','phil'=>'phil','sams'=>'sams','sch-'=>'sch-','shar'=>'shar','sie-'=>'sie-','wap_'=>'wap_','zte-'=>'zte-')));
					$browser	= "mobile";
					$activated	= TRUE;
					break;
					
				// Render mobile site for mobile search engines
				case (preg_match('/Googlebot-Mobile/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/YahooSeeker\/M1A1-R2D2/i', $_SERVER['HTTP_USER_AGENT'])):
					$browser	= "mobile";
					$activated	= TRUE;
					break;
			}
			
			$_SESSION['MOPR_MOBILE_BROWSER'] 	= $browser;
			$_SESSION['MOPR_MOBILE_ACTIVE'] 	= $activated;
			$_SESSION['MOPR_MOBILE_THEME'] 		= $theme;
		}
		
	}
}
?>
__________________
- חייך הכל לטובה .
  Reply With Quote
ישן 26-04-12, 11:57   # 4
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

קח את סקריפט 2 שיש לך, ואז תיקח את כל הפרמטרים שיש בGET ויצור מחרוזת שמכילה את כל הפרמטרים, תוסיף את זה לסוף ההפנייה וסדרת הכל...
__________________
  Reply With Quote
ישן 26-04-12, 13:13   # 5
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

זו דעתי המקצועית בלבד, אני לא יודע מה אחרים יענו לך על זה..

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


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

אז מה כן לעשות?
כיום לגישה שלי קיימים שתי פתרונות נפוצים:
א. הפרדה ברמת ה-core שבמידה והקליינט שלך הוא Mobile אז לשנות רק את הtheme של האתר.
ב. לפתח עיצוב לאתר שהוא responsive.


~ אלמוג.
  Reply With Quote
ישן 26-04-12, 15:37   # 6
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

בנוגע לתוכן המשוכפל:
קרא את זה - http://www.metatags.info/rel_canonical

בנוגע לבדיקה האם המשתמש גולש דרך מכשיר נייד:
ראית כבר לבד שאפשר להשתמש ב- User Agent כדי לבדוק את זה.

בנוגע לאפשרות הבחירה בין גרסה רגילה לגרסה למובייל:
אפשר ליצור קישור פשוט (domain.com/?m , domain.com/?full), לשמור את הבחירה בסיישן/עוגיה ולהתחשב בה בבדיקה.

בכל אופן -
לדעתי הבעיה העיקרית שלך היא לא איך לממש את זה באופן תיאורתי.
הבעיה היא שאתה לא יודע לתכנת, אתה לא יודע איך לממש את זה בפועל, את זה יהיה קצת יותר קשה להסביר לך.

בהצלחה.
  Reply With Quote
ישן 26-04-12, 19:15   # 7
gillllll
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
הודעות: 363

gillllll לא מחובר  

אלמוג, מצטער לא מסכים איתך כל כך - הלוואי ורק פייסבוק היו בונים אתרים נפרדים (GSM ארנה, איקאה, ועוד ועוד) ... גם בתור אתר קטן יחסית לחברה האלה רשמתי הסבר בפוסט של יגאל מאתמול על HTML 5 למה יש עניין כיום כן לבנות כך.
http://www.hosts.co.il/forums/showthread.php?t=96883

אדיר, לא התיימרתי להיות מתכנת דגול, למרות שתכנתתי כמה וכמה דברים בחיי נכון יהיה לטעון שאני עדין לא הכי משופשף ב PHP אבל נראה לי שהידע שלי מספיק בשביל לעשות את הקוד הזה. ועם כל הדוגמאות שצירפתי כאן מתכנת טוב כפי שאתה אומר היה כבר רושם פתרון שמורכב מהדוגמאות האלה כי בסה"כ הכל כבר כאן.
אבל אני לא מחפש מהיד לפה הסיבה שאני כאן ומשתף היא א.כי זה מעניין בטח לא רק אותי. והקוד יכול לשמש אחרים ואתכם שגולשים בפורום ב. כי יש כאן גם אלמנט קידומי שבגללו אני מאד מאד חושש להשתמש בקוד מסוים בלי שאני אהיה בטוח שהוא לא יזיק לי מבחינת קידום אתרים. ג.נתקלתי בבעיות שאני לא שאין לי רעיון יעיל לפתרון שלהם.
אלו הסיבות העיקריות מלבדן יש תוצאות טובות לדיון כמו בכך שתחשף בתור מתכנת לבעיתיות שמתקבלת מאתר לסלולר. ומעצם התשובה שלך שהצעת שימוש בתג קנוניקל מראה שזה מעניין גם אותך. ולעניין ההצעות שלך :
תוכן משוכפל, אני כבר קראתי לפני שהזכרת על התגית וחשבתי להשתמש בה העניין הוא שכיוון שהדף הוא לא אחד לאחד ויש רק חלקים ממנו שיהיו משוכפלים מבחינת תוכן זהה וגם גוגל בעצמם לא הציעו להשתמש בתגית קנוניקל לא בוידאו ולא בבלוג למרות שהוא בפירוש מדבר על בעיה של תוכן דומה במסגרת של אתר סלולרי אני לא בטוח שזה מספיק ולכן אניפונה לפתרון של USER AGENT כפי שמצורף בקובץ CHECK.PHP.

אתה גם רשמת:
בנוגע לאפשרות הבחירה בין גרסה רגילה לגרסה למובייל:
אפשר ליצור קישור פשוט (domain.com/?m , domain.com/?full), לשמור את הבחירה בסיישן/עוגיה ולהתחשב בה בבדיקה.

ראיתי פתרונות כאלה אבל איך זה פותר את הבעיה השניה :
אני מעוניין שכאשר הגולש יכנס לדף פנימי למשל domain.com/?id=23 או domain.com/article.php?id=12 יותאם לו במידה והוא מגיע מפלאפון אותה כתובת רק עם הסאבדומיין לפלאפון דוגמא : m.domain.com/id?=12
__________________
- חייך הכל לטובה .

Last edited by gillllll; 26-04-12 at 19:18..
  Reply With Quote
ישן 26-04-12, 20:38   # 8
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

ציטוט:
נכתב במקור על ידי gillllll צפה בהודעה
אלמוג, מצטער לא מסכים איתך כל כך - הלוואי ורק פייסבוק היו בונים אתרים נפרדים (GSM ארנה, איקאה, ועוד ועוד) ... גם בתור אתר קטן יחסית לחברה האלה רשמתי הסבר בפוסט של יגאל מאתמול על HTML 5 למה יש עניין כיום כן לבנות כך.
http://www.hosts.co.il/forums/showthread.php?t=96883

אדיר, לא התיימרתי להיות מתכנת דגול, למרות שתכנתתי כמה וכמה דברים בחיי נכון יהיה לטעון שאני עדין לא הכי משופשף ב PHP אבל נראה לי שהידע שלי מספיק בשביל לעשות את הקוד הזה. ועם כל הדוגמאות שצירפתי כאן מתכנת טוב כפי שאתה אומר היה כבר רושם פתרון שמורכב מהדוגמאות האלה כי בסה"כ הכל כבר כאן.
אבל אני לא מחפש מהיד לפה הסיבה שאני כאן ומשתף היא א.כי זה מעניין בטח לא רק אותי. והקוד יכול לשמש אחרים ואתכם שגולשים בפורום ב. כי יש כאן גם אלמנט קידומי שבגללו אני מאד מאד חושש להשתמש בקוד מסוים בלי שאני אהיה בטוח שהוא לא יזיק לי מבחינת קידום אתרים. ג.נתקלתי בבעיות שאני לא שאין לי רעיון יעיל לפתרון שלהם.
אלו הסיבות העיקריות מלבדן יש תוצאות טובות לדיון כמו בכך שתחשף בתור מתכנת לבעיתיות שמתקבלת מאתר לסלולר. ומעצם התשובה שלך שהצעת שימוש בתג קנוניקל מראה שזה מעניין גם אותך. ולעניין ההצעות שלך :
תוכן משוכפל, אני כבר קראתי לפני שהזכרת על התגית וחשבתי להשתמש בה העניין הוא שכיוון שהדף הוא לא אחד לאחד ויש רק חלקים ממנו שיהיו משוכפלים מבחינת תוכן זהה וגם גוגל בעצמם לא הציעו להשתמש בתגית קנוניקל לא בוידאו ולא בבלוג למרות שהוא בפירוש מדבר על בעיה של תוכן דומה במסגרת של אתר סלולרי אני לא בטוח שזה מספיק ולכן אניפונה לפתרון של USER AGENT כפי שמצורף בקובץ CHECK.PHP.

אתה גם רשמת:
בנוגע לאפשרות הבחירה בין גרסה רגילה לגרסה למובייל:
אפשר ליצור קישור פשוט (domain.com/?m , domain.com/?full), לשמור את הבחירה בסיישן/עוגיה ולהתחשב בה בבדיקה.

ראיתי פתרונות כאלה אבל איך זה פותר את הבעיה השניה :
אני מעוניין שכאשר הגולש יכנס לדף פנימי למשל domain.com/?id=23 או domain.com/article.php?id=12 יותאם לו במידה והוא מגיע מפלאפון אותה כתובת רק עם הסאבדומיין לפלאפון דוגמא : m.domain.com/id?=12
קודם כל אתחיל עם התנצלות לגבי המשפט "הבעיה היא שאתה לא יודע לתכנת".
הניסוח המקורי היה בסגנון "הבעיה היא שאתה לא יודע לתכנת את זה", ביצעתי מס' שינויים בתגובה עד שפרסמתי אותה וככל הנראה זה נעלם בדרך.

נושא הדיון הזה בהחלט מעניין ולמעשה גם ניחשת נכון - גם אני התעניינתי בזה בעבר כשנתקלתי בסוגיה דומה.

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

מימוש לדוג':
PHP קוד:
if (is_mobile()) {
   if (
want_full_version() === false) {
      
header("Location: http://m.domain.com{$_SERVER['REQUEST_URI']}");
   }

הקוד נועד להמחשה בלבד.

אם אתה רוצה ללמוד קצת יותר לעומק את עקרונות הפיתוח למובייל -
ממליץ לך על הקורס Mobile Web Design & Development Fundamentals של Lynda.

Last edited by אדיר; 26-04-12 at 20:55..
  Reply With Quote
ישן 27-04-12, 13:21   # 9
gillllll
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
הודעות: 363

gillllll לא מחובר  

לסיכום באיזה דרך פעולה אני בחרתי ומחשבות בנושא:
קודם תודה למגיבים אדיר השתמשתי בשורה לפתרון השני כפי שתראה. אבל לפני שנכנס לקוד לטובת אנשים שיגיעו לכאן בעתיד לאחר חיפוש גוגל בנושא יוכלו למצוא קצת יותר מידע .
מצאתי פרויקט של מישהו בשם אנתוני שפיתח ספרייה לבדיקת מכשירים ניידים (וגם לא כל כך ניידים) הקוד שלו בהחלט מעורר התפעלות בעיקר בשל מגוון המכשירים שהוא יודע לזהות. קינדל, אתרי WAP, אפל, מוצרי גוגל וכו... לכל אחד הוא התאים פונקציה שניתן להריץ בהתאם לצרכים שלכם באתר.
http://blog.mobileesp.com/?page_id=20
אישית לא השתמשתי כי במקרה שלי זה להשתמש במרגמה להרוג זבוב. לאתרים יותר מתוחכמים שפונים למכשירים מוזרים אני בהחלט ממליץ. כמו כן שלחתי לאנתוני מייל שיוסיף זיהוי למנועי חיפוש מותאים סלולרי כפי שאני הוספתי.


בעניין הפתרון שלי:
הפתרון שלי מחולק ל2 אחד קובץ MDETECT שכולל פונקציה לזיהוי מכשיר סלולרי ומחזירה אמת או שקר (תודו באנגלית זה נשמע טוב יותר):
קוד:
<?php
function mobile_check(){
	if(isset($_SERVER['HTTP_USER_AGENT']))
	{
		$uagent =  $_SERVER['HTTP_USER_AGENT'];
		$mobile_agents = '!(tablet|pad|mobile|phone|symbian|android|ipod|ios|blackberry|webos)!i';
		if(preg_match($mobile_agents,$uagent)) return true;
		if(preg_match('/Googlebot-Mobile/i', $uagent) || preg_match('/YahooSeeker\/M1A1-R2D2/i', $uagent) return true;
	}else{
			return false;
	}
}
?>
ובדף עצמו עליו אנו רוצים לבצע את הבדיקה מכניסים את השורות הבאות:
קוד:
      include("includes/mdetect.php");
	  if ((mobile_check())&&($_GET["mobile"]!='false')) 
          header("Location: http://m.domain.com{$_SERVER['REQUEST_URI']}");
בחרתי לבנתיים לא להשתמש בקוקי לזהות העדפות משתמש לאתר רגיל או מותאם. אלא בבדיקה אם שלחתי למשתמש באמצעות GET MOBILE אמת או שקר. מי שרוצה מוזמן להוסיף.
דבר שני יש כאן כל מיני ניואנסים לגבי סוגי דפדפן שבחרתי לבדוק בחרתי דוקא באילו כי אני מניח שהם הכי נפוצים ויקראו בתקווה HTML 5 כפי שצריך. אולי אני טועה אשמח אם תתקנו אותי או תעזרו לי להוסיף עוד. בכל מקרה זה משהו שצריך לשים לב אליו אם אתם משתמשים בקוד.
הדבר השני, יותר תכנותי ומבדיל ביחס לקודים אחרים שמצאתי שימוש ב pregmatch עם !i כדי לא להגביל לקייס סנסיטיב כי אין התנהגות אחידה בהדר הדפדפנים לגבי זה.
ודבר שלישי בעניין התאמה למנועי חיפוש לקחתי את שמות מנועי החיפוש מתוך פלאגין של וורדפרס שפירסמתי בהתחלה , יתכן וקיימים עוד או שהם ישתנו. אבל שמתי לב שבתנאי הראשון אנו בודקים ב MOBILE AGENTS - mobile אני מניח שזה יזהה גם במקרה הזה את המנוע של גוגל אבל בכל זאת הכנסתי למקרה שגוגל יחליטו לעשות שינוי בשם הדפדפן או אם הוא יחמוק. תקנו אותי אם אני טועה בחשיבה שלי לפי דעתכם.
__________________
- חייך הכל לטובה .

Last edited by gillllll; 27-04-12 at 14:44..
  Reply With Quote
ישן 27-04-12, 14:15   # 10
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

הבעיה עם הקוד שלך הוא שכשגולש אצלך גולש בפלאפון והוא בוחר בגרסא הרגילה, אז תצטרך להוסיף לכל לינק באתר את הפרמטר mobile.
במקום זה תוכל לעשות בהתחלת הקוד משהו כזה:
PHP קוד:
if(isset($_GET['nomobile']))$_SESSION['nomobile'] = true;
header("Location: www.domain.com"); 
כלומר ליצור סשיין עם ערך true שאומר שהגולש רוצה לגלוש באתר הרגיל, ואז לעשות הפנייה מחדש לאתר בלי הפרמטר בכתובת (כדי למנוע כתובות כפולות לעמוד הראשי).
ואז בבדיקה אתה בודק אם קיים הסשיין, ככה זה שומר את ההגדרה, ובשביל לחזור לאתר הסלולרי תוכל לעשות הפוך, אם יש פרמטר אחר אז למחוק את הסשיין ואז להפנות מחדש לדף ואז כשהוא יגיע לבדיקה הוא יראה שאין סשיין, ואז תועבר לאתר המובייל.

הנה קוד מלא:
PHP קוד:
//If the user want the desktop version
if(isset($_GET['nomobile'])){
    
//Set session and refresh
    
$_SESSION['nomobile'] = true;
    
header("Location: http://m.domain.com".str_replace('nomobile','',$_SERVER['REQUEST_URI']));
}
//If the user wanted the desktop version and now he wants the mobile version
if(isset($_GET['mobile'])){
    
//Delete session
    
unset($_SESSION['nomobile']);
}

//If the session doesn't exists, and the user is using mobile device
if (!isset($_SESSION['nomobile']) && mobile_check()){
    
//Redirect to the mobile version
    
header("Location: http://m.domain.com".$_SERVER['REQUEST_URI']);

__________________
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 01:03.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ